serialize method

  1. @override
Uint8List serialize()
override

Serialize this instruction to bytes.

Implementation

@override
Uint8List serialize() {
  final nameUtf8 = utf8.encode(name);
  final nameLengthBytes = QpackInteger.encode(nameUtf8.length, 5);
  nameLengthBytes[0] |= 0x40; // instruction prefix '01'
  // Huffman flag (bit 5) is left as 0 — raw UTF-8.

  final valueBytes = QpackString.encode(value);

  final result = Uint8List(
    nameLengthBytes.length + nameUtf8.length + valueBytes.length,
  );
  result.setRange(0, nameLengthBytes.length, nameLengthBytes);
  result.setRange(
    nameLengthBytes.length,
    nameLengthBytes.length + nameUtf8.length,
    nameUtf8,
  );
  result.setRange(
    nameLengthBytes.length + nameUtf8.length,
    result.length,
    valueBytes,
  );

  return result;
}