encode method

  1. @override
Uint8List encode()

Serialize sub-packet to bytes

Implementation

@override
encode() {
  final List<int> header;
  final bodyLen = data.length + 1;

  if (isLong) {
    header = [0xff, ...bodyLen.pack32()];
  } else {
    if (bodyLen < 192) {
      header = [bodyLen];
    } else if (bodyLen <= 8383) {
      header = [(((bodyLen - 192) >> 8) & 0xff) + 192, bodyLen - 192];
    } else {
      header = [0xff, ...bodyLen.pack32()];
    }
  }

  return Uint8List.fromList([
    ...header,
    critical ? type.value | 0x80 : type.value,
    ...data,
  ]);
}