convert method

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

Converts input and returns the result of the conversion.

Implementation

@override
String convert(Uint8List input) {
  final buffer = StringBuffer();
  int bits = 0;
  int value = 0;

  for (int i = 0; i < input.length; i++) {
    value = (value << 8) | input[i];
    bits += 8;

    while (bits >= 5) {
      buffer.write(_alphabet[(value >> (bits - 5)) & 0x1F]);
      bits -= 5;
    }
  }

  if (bits > 0) {
    buffer.write(_alphabet[(value << (5 - bits)) & 0x1F]);
  }

  if (_padding.isNotEmpty && (buffer.length % 8) != 0) {
    buffer.write(_padding * ((buffer.length % 8) - 8).abs());
  }

  return buffer.toString();
}