build method

Uint8List build()

Implementation

Uint8List build() {
  final extBytes = BytesBuilder();

  for (final ext in extensions) {
    extBytes.add([(ext.type >> 8) & 0xFF, ext.type & 0xFF]);
    extBytes.add([(ext.data.length >> 8) & 0xFF, ext.data.length & 0xFF]);
    extBytes.add(ext.data);
  }

  final extList = extBytes.toBytes();

  final body = BytesBuilder()
    ..add([(extList.length >> 8) & 0xFF, extList.length & 0xFF])
    ..add(extList);

  final bodyBytes = body.toBytes();
  final header = [
    msgType,
    (bodyBytes.length >> 16) & 0xFF,
    (bodyBytes.length >> 8) & 0xFF,
    bodyBytes.length & 0xFF,
  ];

  return Uint8List.fromList([...header, ...bodyBytes]);
}