decodeGeneric function

GenericMessage decodeGeneric(
  1. MessageModel model,
  2. List<int> data,
  3. FileModel file
)

Implementation

GenericMessage decodeGeneric(
    MessageModel model, List<int> data, FileModel file) {
  final message = GenericMessage(model);
  final reader = _PbReader(Uint8List.fromList(data));
  while (true) {
    final raw = reader.next();
    if (raw == null) break;
    final field = model.fields[raw.number];
    if (field == null) {
      // Unknown field: retain the raw encoded chunk verbatim.
      message.unknown.add(raw.chunk);
      continue;
    }
    message.values.putIfAbsent(raw.number, () => []).add(_decodeValue(field, raw, file));
  }
  return message;
}