decode method
Implementation
Uint8List decode(String string) {
if (string.length == 0) {
throw new ArgumentError('Non-base$BASE character');
}
List<int> bytes = [0];
for (var i = 0; i < string.length; i++) {
var value = ALPHABET_MAP[string[i]];
if (value == null) {
throw new ArgumentError('Non-base$BASE character');
}
var carry = value;
for (var j = 0; j < bytes.length; ++j) {
carry += bytes[j] * BASE!;
bytes[j] = carry & 0xff;
carry >>= 8;
}
while (carry > 0) {
bytes.add(carry & 0xff);
carry >>= 8;
}
}
// deal with leading zeros
for (var k = 0; string[k] == LEADER && k < string.length - 1; ++k) {
bytes.add(0);
}
return Uint8List.fromList(bytes.reversed.toList());
}