decodeBytes function
Decode length-delimited bytes from buffer at offset.
Returns {data: List<int>, bytesRead: int}.
Implementation
Map<String, Object> decodeBytes(List<int> buffer, int offset) {
var varintResult = decodeVarint(buffer, offset);
var length = varintResult['value']!;
var varintSize = varintResult['bytesRead']!;
var start = offset + varintSize;
if (start + length > buffer.length) {
throw FormatException(
'Length-delimited field overflows buffer at offset $offset: '
'need $length bytes, have ${buffer.length - start}',
);
}
var data = buffer.sublist(start, start + length);
return {'data': data, 'bytesRead': varintSize + length};
}