deserializeVariant function

Object? deserializeVariant(
  1. Type self,
  2. SerialBuffer buffer, {
  3. SerializerState? state,
  4. bool? allowExtensions = true,
})

Implementation

Object? deserializeVariant(Type self, SerialBuffer buffer,
    {SerializerState? state, bool? allowExtensions = true}) {
  state ??= SerializerState();
  var i = buffer.getVaruint32();
  if (i >= self.fields!.length) {
    throw 'type index $i is not valid for variant';
  }
  var field = self.fields![i];
    return [field.name, field.type!.deserialize!(field.type, buffer, state: state, allowExtensions: allowExtensions)];
}