aws_sdk_appmesh/protocol_serde/
shape_tls_validation_context_trust.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub fn ser_tls_validation_context_trust(
3    object_2: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4    input: &crate::types::TlsValidationContextTrust,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6    match input {
7        crate::types::TlsValidationContextTrust::Acm(inner) => {
8            #[allow(unused_mut)]
9            let mut object_1 = object_2.key("acm").start_object();
10            crate::protocol_serde::shape_tls_validation_context_acm_trust::ser_tls_validation_context_acm_trust(&mut object_1, inner)?;
11            object_1.finish();
12        }
13        crate::types::TlsValidationContextTrust::File(inner) => {
14            #[allow(unused_mut)]
15            let mut object_2 = object_2.key("file").start_object();
16            crate::protocol_serde::shape_tls_validation_context_file_trust::ser_tls_validation_context_file_trust(&mut object_2, inner)?;
17            object_2.finish();
18        }
19        crate::types::TlsValidationContextTrust::Sds(inner) => {
20            #[allow(unused_mut)]
21            let mut object_3 = object_2.key("sds").start_object();
22            crate::protocol_serde::shape_tls_validation_context_sds_trust::ser_tls_validation_context_sds_trust(&mut object_3, inner)?;
23            object_3.finish();
24        }
25        crate::types::TlsValidationContextTrust::Unknown => {
26            return Err(::aws_smithy_types::error::operation::SerializationError::unknown_variant(
27                "TlsValidationContextTrust",
28            ))
29        }
30    }
31    Ok(())
32}
33
34pub(crate) fn de_tls_validation_context_trust<'a, I>(
35    tokens: &mut ::std::iter::Peekable<I>,
36) -> ::std::result::Result<Option<crate::types::TlsValidationContextTrust>, ::aws_smithy_json::deserialize::error::DeserializeError>
37where
38    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
39{
40    let mut variant = None;
41    match tokens.next().transpose()? {
42        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
43        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => loop {
44            match tokens.next().transpose()? {
45                Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
46                Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
47                    if let ::std::option::Option::Some(::std::result::Result::Ok(::aws_smithy_json::deserialize::Token::ValueNull { .. })) =
48                        tokens.peek()
49                    {
50                        let _ = tokens.next().expect("peek returned a token")?;
51                        continue;
52                    }
53                    let key = key.to_unescaped()?;
54                    if key == "__type" {
55                        ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
56                        continue;
57                    }
58                    if variant.is_some() {
59                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
60                            "encountered mixed variants in union",
61                        ));
62                    }
63                    variant = match key.as_ref() {
64                        "acm" => Some(crate::types::TlsValidationContextTrust::Acm(
65                            crate::protocol_serde::shape_tls_validation_context_acm_trust::de_tls_validation_context_acm_trust(tokens)?
66                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'acm' cannot be null"))?,
67                        )),
68                        "file" => Some(crate::types::TlsValidationContextTrust::File(
69                            crate::protocol_serde::shape_tls_validation_context_file_trust::de_tls_validation_context_file_trust(tokens)?
70                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'file' cannot be null"))?,
71                        )),
72                        "sds" => Some(crate::types::TlsValidationContextTrust::Sds(
73                            crate::protocol_serde::shape_tls_validation_context_sds_trust::de_tls_validation_context_sds_trust(tokens)?
74                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'sds' cannot be null"))?,
75                        )),
76                        _ => {
77                            ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
78                            Some(crate::types::TlsValidationContextTrust::Unknown)
79                        }
80                    };
81                }
82                other => {
83                    return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
84                        "expected object key or end object, found: {other:?}"
85                    )))
86                }
87            }
88        },
89        _ => {
90            return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
91                "expected start object or null",
92            ))
93        }
94    }
95    if variant.is_none() {
96        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
97            "Union did not contain a valid variant.",
98        ));
99    }
100    Ok(variant)
101}