decode method
Decodes a JSON-compatible wire value.
Implementation
@override
SetSessionConfigOptionRequest decode(Object? value) {
final payload = decodeAcpObject(value);
final tag = decodeAcpString(payload['type']);
switch (tag) {
case 'id':
final decoder = AcpResilientDecoder(payload);
return SetSessionConfigOptionRequestId(
sessionId: decoder.required(
'sessionId',
(value) => sessionIdCodec.decode(value),
),
configId: decoder.required(
'configId',
(value) => sessionConfigIdCodec.decode(value),
),
meta: decoder.meta(),
value: decoder.required(
'value',
(value) => sessionConfigValueIdCodec.decode(value),
),
);
case 'boolean':
final decoder = AcpResilientDecoder(payload);
return SetSessionConfigOptionRequestBoolean(
sessionId: decoder.required(
'sessionId',
(value) => sessionIdCodec.decode(value),
),
configId: decoder.required(
'configId',
(value) => sessionConfigIdCodec.decode(value),
),
meta: decoder.meta(),
value: decoder.required('value', (value) => decodeAcpBoolean(value)),
);
default:
final decoder = AcpResilientDecoder(payload);
decoder.required('sessionId', (value) => sessionIdCodec.decode(value));
decoder.required(
'configId',
(value) => sessionConfigIdCodec.decode(value),
);
return SetSessionConfigOptionRequestCustom(
discriminator: tag,
payload: AcpJsonObject.fromObject(payload),
);
}
}