aws_sdk_sagemaker/protocol_serde/
shape_trial_component_parameter_value.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub 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}