generate function
Convert a String into a Redis slot hash.
Implementation
int generate(String key) {
int char;
var i = 0;
var start = -1;
var result = 0;
var resultHash = 0;
final utf8 = convert.utf8.encode(key);
final length = utf8.length;
while (i < length) {
char = utf8[i++];
if (start == -1) {
if (char == 0x7B) {
start = i;
}
} else if (char != 0x7D) {
resultHash =
_lookupList[(char ^ (resultHash >> 8)) & 0xFF] ^ (resultHash << 8);
} else if (i - 1 != start) {
return resultHash & 0x3FFF;
}
result = _lookupList[(char ^ (result >> 8)) & 0xFF] ^ (result << 8);
}
return result & 0x3FFF;
}