aws_sdk_ec2/protocol_serde/
shape_path_component.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::needless_question_mark)]
3pub fn de_path_component(
4    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
5) -> ::std::result::Result<crate::types::PathComponent, ::aws_smithy_xml::decode::XmlDecodeError> {
6    #[allow(unused_mut)]
7    let mut builder = crate::types::PathComponent::builder();
8    while let Some(mut tag) = decoder.next_tag() {
9        match tag.start_el() {
10            s if s.matches("sequenceNumber") /* SequenceNumber com.amazonaws.ec2#PathComponent$SequenceNumber */ =>  {
11                let var_1 =
12                    Some(
13                         {
14                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
15                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
16                            )
17                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
18                        }
19                        ?
20                    )
21                ;
22                builder = builder.set_sequence_number(var_1);
23            }
24            ,
25            s if s.matches("aclRule") /* AclRule com.amazonaws.ec2#PathComponent$AclRule */ =>  {
26                let var_2 =
27                    Some(
28                        crate::protocol_serde::shape_analysis_acl_rule::de_analysis_acl_rule(&mut tag)
29                        ?
30                    )
31                ;
32                builder = builder.set_acl_rule(var_2);
33            }
34            ,
35            s if s.matches("attachedTo") /* AttachedTo com.amazonaws.ec2#PathComponent$AttachedTo */ =>  {
36                let var_3 =
37                    Some(
38                        crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
39                        ?
40                    )
41                ;
42                builder = builder.set_attached_to(var_3);
43            }
44            ,
45            s if s.matches("component") /* Component com.amazonaws.ec2#PathComponent$Component */ =>  {
46                let var_4 =
47                    Some(
48                        crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
49                        ?
50                    )
51                ;
52                builder = builder.set_component(var_4);
53            }
54            ,
55            s if s.matches("destinationVpc") /* DestinationVpc com.amazonaws.ec2#PathComponent$DestinationVpc */ =>  {
56                let var_5 =
57                    Some(
58                        crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
59                        ?
60                    )
61                ;
62                builder = builder.set_destination_vpc(var_5);
63            }
64            ,
65            s if s.matches("outboundHeader") /* OutboundHeader com.amazonaws.ec2#PathComponent$OutboundHeader */ =>  {
66                let var_6 =
67                    Some(
68                        crate::protocol_serde::shape_analysis_packet_header::de_analysis_packet_header(&mut tag)
69                        ?
70                    )
71                ;
72                builder = builder.set_outbound_header(var_6);
73            }
74            ,
75            s if s.matches("inboundHeader") /* InboundHeader com.amazonaws.ec2#PathComponent$InboundHeader */ =>  {
76                let var_7 =
77                    Some(
78                        crate::protocol_serde::shape_analysis_packet_header::de_analysis_packet_header(&mut tag)
79                        ?
80                    )
81                ;
82                builder = builder.set_inbound_header(var_7);
83            }
84            ,
85            s if s.matches("routeTableRoute") /* RouteTableRoute com.amazonaws.ec2#PathComponent$RouteTableRoute */ =>  {
86                let var_8 =
87                    Some(
88                        crate::protocol_serde::shape_analysis_route_table_route::de_analysis_route_table_route(&mut tag)
89                        ?
90                    )
91                ;
92                builder = builder.set_route_table_route(var_8);
93            }
94            ,
95            s if s.matches("securityGroupRule") /* SecurityGroupRule com.amazonaws.ec2#PathComponent$SecurityGroupRule */ =>  {
96                let var_9 =
97                    Some(
98                        crate::protocol_serde::shape_analysis_security_group_rule::de_analysis_security_group_rule(&mut tag)
99                        ?
100                    )
101                ;
102                builder = builder.set_security_group_rule(var_9);
103            }
104            ,
105            s if s.matches("sourceVpc") /* SourceVpc com.amazonaws.ec2#PathComponent$SourceVpc */ =>  {
106                let var_10 =
107                    Some(
108                        crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
109                        ?
110                    )
111                ;
112                builder = builder.set_source_vpc(var_10);
113            }
114            ,
115            s if s.matches("subnet") /* Subnet com.amazonaws.ec2#PathComponent$Subnet */ =>  {
116                let var_11 =
117                    Some(
118                        crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
119                        ?
120                    )
121                ;
122                builder = builder.set_subnet(var_11);
123            }
124            ,
125            s if s.matches("vpc") /* Vpc com.amazonaws.ec2#PathComponent$Vpc */ =>  {
126                let var_12 =
127                    Some(
128                        crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
129                        ?
130                    )
131                ;
132                builder = builder.set_vpc(var_12);
133            }
134            ,
135            s if s.matches("additionalDetailSet") /* AdditionalDetails com.amazonaws.ec2#PathComponent$AdditionalDetails */ =>  {
136                let var_13 =
137                    Some(
138                        crate::protocol_serde::shape_additional_detail_list::de_additional_detail_list(&mut tag)
139                        ?
140                    )
141                ;
142                builder = builder.set_additional_details(var_13);
143            }
144            ,
145            s if s.matches("transitGateway") /* TransitGateway com.amazonaws.ec2#PathComponent$TransitGateway */ =>  {
146                let var_14 =
147                    Some(
148                        crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
149                        ?
150                    )
151                ;
152                builder = builder.set_transit_gateway(var_14);
153            }
154            ,
155            s if s.matches("transitGatewayRouteTableRoute") /* TransitGatewayRouteTableRoute com.amazonaws.ec2#PathComponent$TransitGatewayRouteTableRoute */ =>  {
156                let var_15 =
157                    Some(
158                        crate::protocol_serde::shape_transit_gateway_route_table_route::de_transit_gateway_route_table_route(&mut tag)
159                        ?
160                    )
161                ;
162                builder = builder.set_transit_gateway_route_table_route(var_15);
163            }
164            ,
165            s if s.matches("explanationSet") /* Explanations com.amazonaws.ec2#PathComponent$Explanations */ =>  {
166                let var_16 =
167                    Some(
168                        crate::protocol_serde::shape_explanation_list::de_explanation_list(&mut tag)
169                        ?
170                    )
171                ;
172                builder = builder.set_explanations(var_16);
173            }
174            ,
175            s if s.matches("elasticLoadBalancerListener") /* ElasticLoadBalancerListener com.amazonaws.ec2#PathComponent$ElasticLoadBalancerListener */ =>  {
176                let var_17 =
177                    Some(
178                        crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
179                        ?
180                    )
181                ;
182                builder = builder.set_elastic_load_balancer_listener(var_17);
183            }
184            ,
185            s if s.matches("firewallStatelessRule") /* FirewallStatelessRule com.amazonaws.ec2#PathComponent$FirewallStatelessRule */ =>  {
186                let var_18 =
187                    Some(
188                        crate::protocol_serde::shape_firewall_stateless_rule::de_firewall_stateless_rule(&mut tag)
189                        ?
190                    )
191                ;
192                builder = builder.set_firewall_stateless_rule(var_18);
193            }
194            ,
195            s if s.matches("firewallStatefulRule") /* FirewallStatefulRule com.amazonaws.ec2#PathComponent$FirewallStatefulRule */ =>  {
196                let var_19 =
197                    Some(
198                        crate::protocol_serde::shape_firewall_stateful_rule::de_firewall_stateful_rule(&mut tag)
199                        ?
200                    )
201                ;
202                builder = builder.set_firewall_stateful_rule(var_19);
203            }
204            ,
205            s if s.matches("serviceName") /* ServiceName com.amazonaws.ec2#PathComponent$ServiceName */ =>  {
206                let var_20 =
207                    Some(
208                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
209                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
210                            .into()
211                        )
212                        ?
213                    )
214                ;
215                builder = builder.set_service_name(var_20);
216            }
217            ,
218            _ => {}
219        }
220    }
221    Ok(builder.build())
222}