in lib/src/hex/decoder.dart [55:81]
void addSlice(String string, int start, int end, bool isLast) {
RangeError.checkValidRange(start, end, string.length);
if (start == end) {
if (isLast) _close(string, end);
return;
}
var codeUnits = string.codeUnits;
Uint8List bytes;
int bytesStart;
if (_lastDigit == null) {
bytes = Uint8List((end - start) ~/ 2);
bytesStart = 0;
} else {
var hexPairs = (end - start - 1) ~/ 2;
bytes = Uint8List(1 + hexPairs);
bytes[0] = _lastDigit! + digitForCodeUnit(codeUnits, start);
start++;
bytesStart = 1;
}
_lastDigit = _decode(codeUnits, start, end, bytes, bytesStart);
_sink.add(bytes);
if (isLast) _close(string, end);
}