encode static method

String encode(
  1. Uint8List byteArrayArg
)

Implementation

static String encode(Uint8List byteArrayArg) {
  if (byteArrayArg.isEmpty) {
    throw Exception('byteArrayArg is null or undefined');
  }

  var wholeChunkCount = (byteArrayArg.length / chunkSize).truncate();

  var resultSize = wholeChunkCount * encodedChunkSize +
      (byteArrayArg.length % chunkSize == 1 ? smallEncodedChunkSize : 0);

  if (resultSize == 0) {
    return '';
  }

  var result = List<String>.generate(resultSize, (index) => '');
  var resultIndex = 0;
  var wholeChunkLength = wholeChunkCount * chunkSize;
  for (var i = 0; i < wholeChunkLength;) {
    var value = byteArrayArg[i++] * byteSize + byteArrayArg[i++];
    result[resultIndex++] = encoding[value % baseSize];
    result[resultIndex++] =
        encoding[(value / baseSize).truncate() % baseSize];
    result[resultIndex++] =
        encoding[(value / baseSizeSquared).truncate() % baseSize];
  }

  if (byteArrayArg.length % chunkSize == 0) {
    return result.join('');
  }

  result[result.length - 2] =
      encoding[byteArrayArg[byteArrayArg.length - 1] % baseSize];
  result[result.length - 1] = byteArrayArg[byteArrayArg.length - 1] < baseSize
      ? encoding[0]
      : encoding[
          (byteArrayArg[byteArrayArg.length - 1] / baseSize).truncate() %
              baseSize];

  return result.join('');
}