decodeFrame static method

({Uint8List payload, int streamId, int type}) decodeFrame(
  1. Uint8List data
)

One parsed frame.

Implementation

static ({
  int type,
  int streamId,
  Uint8List payload,
}) decodeFrame(Uint8List data) {
  if (data.length < headerLen) {
    throw StatusException(Wire.codeInvalidArgument,
        'frame shorter than 9-byte header: ${data.length} bytes');
  }
  final length = getU32(data, 5);
  if (length != data.length - headerLen) {
    throw StatusException(Wire.codeInvalidArgument,
        'payload length $length does not match message size ${data.length}');
  }
  return (
    type: data[0],
    streamId: getU32(data, 1),
    payload: Uint8List.sublistView(data, headerLen),
  );
}