aws_sdk_cleanrooms/protocol_serde/
shape_membership_protected_query_output_configuration.rs1pub 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}