encode method
The .f3dtrace bytes.
Implementation
Uint8List encode() {
final blob = TraceBlobWriter();
final header = utf8.encode(
jsonEncode(<String, Object?>{
'metadata': metadata,
'events': <Object?>[
for (final e in events)
<String, Object?>{'kind': e.kind, ...e.toJson(blob)},
],
}),
);
final payload = blob.take();
final prefix = ByteData(16);
for (var i = 0; i < _magic.length; i++) {
prefix.setUint8(i, _magic[i]);
}
prefix
..setUint32(8, formatVersion, Endian.little)
..setUint32(12, header.length, Endian.little);
return (BytesBuilder(copy: false)
..add(prefix.buffer.asUint8List())
..add(header)
..add(payload))
.takeBytes();
}