decodeFrame static method
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),
);
}