convert method
Converts input
and returns the result of the conversion.
Implementation
@override
Uint8List convert(String input) {
String data = caseInsensitive ? input.toUpperCase() : input;
if (_padding.isNotEmpty) {
data = data.replaceAll(_padding, "");
}
final buffer = Uint8List(data.length * 5 ~/ 8);
final length = data.length;
int bits = 0;
int value = 0;
int byte = 0;
for (int i = 0; i < length; i++) {
final index = _alphabet.indexOf(data[i]);
if (index == -1) {
throw FormatException('Invalid character detected: ${data[i]}');
}
value = (value << 5) | index;
bits += 5;
if (bits >= 8) {
buffer[byte++] = (value >> (bits - 8)) & 0xFF;
bits -= 8;
}
}
return buffer;
}