decode method

  1. @override
StateUpdate decode(
  1. Object? value
)
override

Decodes a JSON-compatible wire value.

Implementation

@override
StateUpdate decode(Object? value) {
  final payload = decodeAcpObject(value);
  final tag = decodeAcpString(payload['state']);
  switch (tag) {
    case 'running':
      return StateUpdateRunning(runningStateUpdateCodec.decode(payload));
    case 'idle':
      return StateUpdateIdle(idleStateUpdateCodec.decode(payload));
    case 'requires_action':
      return StateUpdateRequiresAction(
        requiresActionStateUpdateCodec.decode(payload),
      );
    default:
      return StateUpdateCustom(
        discriminator: tag,
        payload: AcpJsonObject.fromObject(payload),
      );
  }
}