convert method

  1. @override
Uint8List convert(
  1. String input
)
override

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;
}