aws_sdk_sagemaker/protocol_serde/
shape_trial_component_parameter_value.rs1pub fn ser_trial_component_parameter_value(
3 object_11: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4 input: &crate::types::TrialComponentParameterValue,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6 match input {
7 crate::types::TrialComponentParameterValue::StringValue(inner) => {
8 object_11.key("StringValue").string(inner.as_str());
9 }
10 crate::types::TrialComponentParameterValue::NumberValue(inner) => {
11 object_11.key("NumberValue").number(
12 #[allow(clippy::useless_conversion)]
13 ::aws_smithy_types::Number::Float((*inner).into()),
14 );
15 }
16 crate::types::TrialComponentParameterValue::Unknown => {
17 return Err(::aws_smithy_types::error::operation::SerializationError::unknown_variant(
18 "TrialComponentParameterValue",
19 ))
20 }
21 }
22 Ok(())
23}
24
25pub(crate) fn de_trial_component_parameter_value<'a, I>(
26 tokens: &mut ::std::iter::Peekable<I>,
27) -> ::std::result::Result<Option<crate::types::TrialComponentParameterValue>, ::aws_smithy_json::deserialize::error::DeserializeError>
28where
29 I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
30{
31 let mut variant = None;
32 match tokens.next().transpose()? {
33 Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
34 Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => loop {
35 match tokens.next().transpose()? {
36 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
37 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
38 if let ::std::option::Option::Some(::std::result::Result::Ok(::aws_smithy_json::deserialize::Token::ValueNull { .. })) =
39 tokens.peek()
40 {
41 let _ = tokens.next().expect("peek returned a token")?;
42 continue;
43 }
44 let key = key.to_unescaped()?;
45 if key == "__type" {
46 ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
47 continue;
48 }
49 if variant.is_some() {
50 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
51 "encountered mixed variants in union",
52 ));
53 }
54 variant = match key.as_ref() {
55 "StringValue" => Some(crate::types::TrialComponentParameterValue::StringValue(
56 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
57 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
58 .transpose()?
59 .ok_or_else(|| {
60 ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'StringValue' cannot be null")
61 })?,
62 )),
63 "NumberValue" => Some(crate::types::TrialComponentParameterValue::NumberValue(
64 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
65 .map(|v| v.to_f64_lossy())
66 .ok_or_else(|| {
67 ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'NumberValue' cannot be null")
68 })?,
69 )),
70 _ => {
71 ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
72 Some(crate::types::TrialComponentParameterValue::Unknown)
73 }
74 };
75 }
76 other => {
77 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
78 "expected object key or end object, found: {:?}",
79 other
80 )))
81 }
82 }
83 },
84 _ => {
85 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
86 "expected start object or null",
87 ))
88 }
89 }
90 if variant.is_none() {
91 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
92 "Union did not contain a valid variant.",
93 ));
94 }
95 Ok(variant)
96}