Skip to main content

aws_sdk_lexmodelsv2/protocol_serde/
shape_conditional_specification.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub(crate) fn de_conditional_specification<'a, I>(
3    tokens: &mut ::std::iter::Peekable<I>,
4    _value: &'a [u8],
5) -> ::std::result::Result<Option<crate::types::ConditionalSpecification>, ::aws_smithy_json::deserialize::error::DeserializeError>
6where
7    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
8{
9    match tokens.next().transpose()? {
10        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
11        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
12            #[allow(unused_mut)]
13            let mut builder = crate::types::builders::ConditionalSpecificationBuilder::default();
14            loop {
15                match tokens.next().transpose()? {
16                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
17                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
18                        "active" => {
19                            builder = builder.set_active(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
20                        }
21                        "conditionalBranches" => {
22                            builder = builder.set_conditional_branches(crate::protocol_serde::shape_conditional_branches::de_conditional_branches(
23                                tokens, _value,
24                            )?);
25                        }
26                        "defaultBranch" => {
27                            builder = builder.set_default_branch(
28                                crate::protocol_serde::shape_default_conditional_branch::de_default_conditional_branch(tokens, _value)?,
29                            );
30                        }
31                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
32                    },
33                    other => {
34                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
35                            "expected object key or end object, found: {other:?}"
36                        )))
37                    }
38                }
39            }
40            Ok(Some(
41                crate::serde_util::conditional_specification_correct_errors(builder)
42                    .build()
43                    .map_err(|err| ::aws_smithy_json::deserialize::error::DeserializeError::custom_source("Response was invalid", err))?,
44            ))
45        }
46        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
47            "expected start object or null",
48        )),
49    }
50}
51
52pub fn ser_conditional_specification(
53    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
54    input: &crate::types::ConditionalSpecification,
55) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
56    {
57        object.key("active").boolean(input.active);
58    }
59    {
60        let mut array_1 = object.key("conditionalBranches").start_array();
61        for item_2 in &input.conditional_branches {
62            {
63                #[allow(unused_mut)]
64                let mut object_3 = array_1.value().start_object();
65                crate::protocol_serde::shape_conditional_branch::ser_conditional_branch(&mut object_3, item_2)?;
66                object_3.finish();
67            }
68        }
69        array_1.finish();
70    }
71    if let Some(var_4) = &input.default_branch {
72        #[allow(unused_mut)]
73        let mut object_5 = object.key("defaultBranch").start_object();
74        crate::protocol_serde::shape_default_conditional_branch::ser_default_conditional_branch(&mut object_5, var_4)?;
75        object_5.finish();
76    }
77    Ok(())
78}