aws_sdk_elasticloadbalancing/protocol_serde/
shape_load_balancer_attributes.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(unused_mut)]
3pub fn ser_load_balancer_attributes(
4    mut writer: ::aws_smithy_query::QueryValueWriter,
5    input: &crate::types::LoadBalancerAttributes,
6) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
7    #[allow(unused_mut)]
8    let mut scope_1 = writer.prefix("CrossZoneLoadBalancing");
9    if let Some(var_2) = &input.cross_zone_load_balancing {
10        crate::protocol_serde::shape_cross_zone_load_balancing::ser_cross_zone_load_balancing(scope_1, var_2)?;
11    }
12    #[allow(unused_mut)]
13    let mut scope_3 = writer.prefix("AccessLog");
14    if let Some(var_4) = &input.access_log {
15        crate::protocol_serde::shape_access_log::ser_access_log(scope_3, var_4)?;
16    }
17    #[allow(unused_mut)]
18    let mut scope_5 = writer.prefix("ConnectionDraining");
19    if let Some(var_6) = &input.connection_draining {
20        crate::protocol_serde::shape_connection_draining::ser_connection_draining(scope_5, var_6)?;
21    }
22    #[allow(unused_mut)]
23    let mut scope_7 = writer.prefix("ConnectionSettings");
24    if let Some(var_8) = &input.connection_settings {
25        crate::protocol_serde::shape_connection_settings::ser_connection_settings(scope_7, var_8)?;
26    }
27    #[allow(unused_mut)]
28    let mut scope_9 = writer.prefix("AdditionalAttributes");
29    if let Some(var_10) = &input.additional_attributes {
30        let mut list_12 = scope_9.start_list(false, None);
31        for item_11 in var_10 {
32            #[allow(unused_mut)]
33            let mut entry_13 = list_12.entry();
34            crate::protocol_serde::shape_additional_attribute::ser_additional_attribute(entry_13, item_11)?;
35        }
36        list_12.finish();
37    }
38    Ok(())
39}
40
41#[allow(clippy::needless_question_mark)]
42pub fn de_load_balancer_attributes(
43    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
44) -> ::std::result::Result<crate::types::LoadBalancerAttributes, ::aws_smithy_xml::decode::XmlDecodeError> {
45    #[allow(unused_mut)]
46    let mut builder = crate::types::LoadBalancerAttributes::builder();
47    while let Some(mut tag) = decoder.next_tag() {
48        match tag.start_el() {
49            s if s.matches("CrossZoneLoadBalancing") /* CrossZoneLoadBalancing com.amazonaws.elasticloadbalancing#LoadBalancerAttributes$CrossZoneLoadBalancing */ =>  {
50                let var_14 =
51                    Some(
52                        crate::protocol_serde::shape_cross_zone_load_balancing::de_cross_zone_load_balancing(&mut tag)
53                        ?
54                    )
55                ;
56                builder = builder.set_cross_zone_load_balancing(var_14);
57            }
58            ,
59            s if s.matches("AccessLog") /* AccessLog com.amazonaws.elasticloadbalancing#LoadBalancerAttributes$AccessLog */ =>  {
60                let var_15 =
61                    Some(
62                        crate::protocol_serde::shape_access_log::de_access_log(&mut tag)
63                        ?
64                    )
65                ;
66                builder = builder.set_access_log(var_15);
67            }
68            ,
69            s if s.matches("ConnectionDraining") /* ConnectionDraining com.amazonaws.elasticloadbalancing#LoadBalancerAttributes$ConnectionDraining */ =>  {
70                let var_16 =
71                    Some(
72                        crate::protocol_serde::shape_connection_draining::de_connection_draining(&mut tag)
73                        ?
74                    )
75                ;
76                builder = builder.set_connection_draining(var_16);
77            }
78            ,
79            s if s.matches("ConnectionSettings") /* ConnectionSettings com.amazonaws.elasticloadbalancing#LoadBalancerAttributes$ConnectionSettings */ =>  {
80                let var_17 =
81                    Some(
82                        crate::protocol_serde::shape_connection_settings::de_connection_settings(&mut tag)
83                        ?
84                    )
85                ;
86                builder = builder.set_connection_settings(var_17);
87            }
88            ,
89            s if s.matches("AdditionalAttributes") /* AdditionalAttributes com.amazonaws.elasticloadbalancing#LoadBalancerAttributes$AdditionalAttributes */ =>  {
90                let var_18 =
91                    Some(
92                        crate::protocol_serde::shape_additional_attributes::de_additional_attributes(&mut tag)
93                        ?
94                    )
95                ;
96                builder = builder.set_additional_attributes(var_18);
97            }
98            ,
99            _ => {}
100        }
101    }
102    Ok(builder.build())
103}