encode static method
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('');
}