decode<T> method

  1. @override
T decode<T>(
  1. Uint8List bytes,
  2. dynamic decoder
)
override

Decode bytes to generic typed object.

You need to pass constructor tearoffs for your type in decoder parameter. https://github.com/dart-lang/language/blob/main/accepted/2.15/constructor-tearoffs/feature-specification.md

Example of using fromJson that accepts Map to constuct Person instance:

Person personFromBytes = jsonMessageAdapter.decode(bytes, Person.fromJson);

Implementation

@override
T decode<T>(Uint8List bytes, dynamic decoder) {
  if (T is GeneratedMessage) {
    return decoder(bytes);
  }
  throw Exception('$T is not of type protobuf generated message');
}