decodeFixed64 function
Decodes 8 little-endian bytes from buffer starting at offset as an
unsigned 64-bit integer.
Returns a map with two entries:
'value': the decoded 64-bit integer.'bytesRead': always 8.
Throws a RangeError if there are fewer than 8 bytes available starting
at offset.
Implementation
Map<String, int> decodeFixed64(List<int> buffer, int offset) {
if (offset + 8 > buffer.length) {
throw RangeError(
'Not enough bytes to decode fixed64 at offset $offset '
'(need 8, have ${buffer.length - offset})',
);
}
int value =
buffer[offset] |
(buffer[offset + 1] << 8) |
(buffer[offset + 2] << 16) |
(buffer[offset + 3] << 24) |
(buffer[offset + 4] << 32) |
(buffer[offset + 5] << 40) |
(buffer[offset + 6] << 48) |
(buffer[offset + 7] << 56);
return {'value': value, 'bytesRead': 8};
}