aws_sdk_cleanrooms/protocol_serde/
shape_membership_protected_query_output_configuration.rs

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