deserialize method

  1. @override
LogicalKeyboardKey deserialize(
  1. dynamic value,
  2. DogEngine engine
)
override

Deserializes the given value from a DogNativeCodec native value.

Implementation

@override
LogicalKeyboardKey deserialize(value, DogEngine engine) {
  var map = readAsMap(value, engine);
  var keyId = map.read<int>("id");
  var keyLabel = map.read<String>("label");

  var resolved = LogicalKeyboardKey.findKeyByKeyId(keyId);
  if (resolved != null && resolved.keyLabel == keyLabel) {
    return resolved;
  }
  throw DogSerializerException(message: "Invalid logical key value", converter: this);
}