parseOut1TrailerIfPresent function

int parseOut1TrailerIfPresent({
  1. required Uint8List data,
  2. required int start,
  3. required List<ParamValue> outputs,
})

Implementation

int parseOut1TrailerIfPresent({
  required Uint8List data,
  required int start,
  required List<ParamValue> outputs,
}) {
  if (data.length < start + 8) {
    return start;
  }
  final m = ByteData.sublistView(
    data,
    start,
    start + 4,
  ).getUint32(0, Endian.little);
  if (m != BinaryProtocolConstants.outputFooterMagic) {
    return start;
  }
  var p = start + 4;
  final n = ByteData.sublistView(data, p, p + 4).getUint32(0, Endian.little);
  p += 4;
  for (var i = 0; i < n; i++) {
    final d = deserializeParamValue(data, offset: p);
    outputs.add(d.value);
    p += d.consumed;
  }
  return p;
}