toBytes method
Implementation
Uint8List toBytes() {
// The format starts with a preamble and the version. See below
// where all the bytes are stringed together.
final typeBytes = ascii.encode(type);
final labelBytes = Uint16List.fromList(label.codeUnits);
final labelLengthBytes = Uint16List.fromList([labelBytes.lengthInBytes]);
final timestampBytes =
Uint64List.fromList([timestamp.millisecondsSinceEpoch]);
final seriesCountBytes = Uint32List.fromList([series.length]);
final seriesDataRanges = <Uint8List>[
for (final s in series) s.toBytes(),
];
final seriesLengthsBytes = Uint64List.fromList([
for (final range in seriesDataRanges) range.lengthInBytes,
]);
var buffer = _preambleBytes +
_currentFormatVersionBytes.buffer.asUint8List() +
typeBytes +
labelLengthBytes.buffer.asUint8List() +
labelBytes.buffer.asUint8List() +
timestampBytes.buffer.asUint8List() +
seriesCountBytes.buffer.asUint8List() +
seriesLengthsBytes.buffer.asUint8List();
for (final range in seriesDataRanges) {
buffer += range.buffer.asUint8List();
}
return Uint8List.fromList(buffer);
}