binarize function

Uint8List binarize(
  1. PayloadWriter payload
)

Convert a PayloadWriter into a Uint8List of bytes.

Implementation

Uint8List binarize(PayloadWriter payload) {
  final length = payload._data.fold<int>(
    0,
    (v, d) => v + (d.type.length(d.value)),
  );

  final uint8List = Uint8List(length);
  final byteData = ByteData.view(uint8List.buffer);

  var offset = 0;
  for (final data in payload._data) {
    final dynamic value = data.value;

    data.type.set(value, byteData, offset);
    offset += data.type.length(value);
  }

  return uint8List;
}