aws_sdk_ec2/protocol_serde/
shape_placement.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(unused_mut)]
3pub fn ser_placement(
4    mut writer: ::aws_smithy_query::QueryValueWriter,
5    input: &crate::types::Placement,
6) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
7    #[allow(unused_mut)]
8    let mut scope_1 = writer.prefix("AvailabilityZoneId");
9    if let Some(var_2) = &input.availability_zone_id {
10        scope_1.string(var_2);
11    }
12    #[allow(unused_mut)]
13    let mut scope_3 = writer.prefix("Affinity");
14    if let Some(var_4) = &input.affinity {
15        scope_3.string(var_4);
16    }
17    #[allow(unused_mut)]
18    let mut scope_5 = writer.prefix("GroupName");
19    if let Some(var_6) = &input.group_name {
20        scope_5.string(var_6);
21    }
22    #[allow(unused_mut)]
23    let mut scope_7 = writer.prefix("PartitionNumber");
24    if let Some(var_8) = &input.partition_number {
25        scope_7.number(
26            #[allow(clippy::useless_conversion)]
27            ::aws_smithy_types::Number::NegInt((*var_8).into()),
28        );
29    }
30    #[allow(unused_mut)]
31    let mut scope_9 = writer.prefix("HostId");
32    if let Some(var_10) = &input.host_id {
33        scope_9.string(var_10);
34    }
35    #[allow(unused_mut)]
36    let mut scope_11 = writer.prefix("Tenancy");
37    if let Some(var_12) = &input.tenancy {
38        scope_11.string(var_12.as_str());
39    }
40    #[allow(unused_mut)]
41    let mut scope_13 = writer.prefix("SpreadDomain");
42    if let Some(var_14) = &input.spread_domain {
43        scope_13.string(var_14);
44    }
45    #[allow(unused_mut)]
46    let mut scope_15 = writer.prefix("HostResourceGroupArn");
47    if let Some(var_16) = &input.host_resource_group_arn {
48        scope_15.string(var_16);
49    }
50    #[allow(unused_mut)]
51    let mut scope_17 = writer.prefix("GroupId");
52    if let Some(var_18) = &input.group_id {
53        scope_17.string(var_18);
54    }
55    #[allow(unused_mut)]
56    let mut scope_19 = writer.prefix("AvailabilityZone");
57    if let Some(var_20) = &input.availability_zone {
58        scope_19.string(var_20);
59    }
60    Ok(())
61}
62
63#[allow(clippy::needless_question_mark)]
64pub fn de_placement(
65    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
66) -> ::std::result::Result<crate::types::Placement, ::aws_smithy_xml::decode::XmlDecodeError> {
67    #[allow(unused_mut)]
68    let mut builder = crate::types::Placement::builder();
69    while let Some(mut tag) = decoder.next_tag() {
70        match tag.start_el() {
71            s if s.matches("availabilityZoneId") /* AvailabilityZoneId com.amazonaws.ec2#Placement$AvailabilityZoneId */ =>  {
72                let var_21 =
73                    Some(
74                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
75                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
76                            .into()
77                        )
78                        ?
79                    )
80                ;
81                builder = builder.set_availability_zone_id(var_21);
82            }
83            ,
84            s if s.matches("affinity") /* Affinity com.amazonaws.ec2#Placement$Affinity */ =>  {
85                let var_22 =
86                    Some(
87                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
88                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
89                            .into()
90                        )
91                        ?
92                    )
93                ;
94                builder = builder.set_affinity(var_22);
95            }
96            ,
97            s if s.matches("groupName") /* GroupName com.amazonaws.ec2#Placement$GroupName */ =>  {
98                let var_23 =
99                    Some(
100                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
101                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
102                            .into()
103                        )
104                        ?
105                    )
106                ;
107                builder = builder.set_group_name(var_23);
108            }
109            ,
110            s if s.matches("partitionNumber") /* PartitionNumber com.amazonaws.ec2#Placement$PartitionNumber */ =>  {
111                let var_24 =
112                    Some(
113                         {
114                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
115                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
116                            )
117                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
118                        }
119                        ?
120                    )
121                ;
122                builder = builder.set_partition_number(var_24);
123            }
124            ,
125            s if s.matches("hostId") /* HostId com.amazonaws.ec2#Placement$HostId */ =>  {
126                let var_25 =
127                    Some(
128                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
129                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
130                            .into()
131                        )
132                        ?
133                    )
134                ;
135                builder = builder.set_host_id(var_25);
136            }
137            ,
138            s if s.matches("tenancy") /* Tenancy com.amazonaws.ec2#Placement$Tenancy */ =>  {
139                let var_26 =
140                    Some(
141                        Result::<crate::types::Tenancy, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
142                            crate::types::Tenancy::from(
143                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
144                            )
145                        )
146                        ?
147                    )
148                ;
149                builder = builder.set_tenancy(var_26);
150            }
151            ,
152            s if s.matches("spreadDomain") /* SpreadDomain com.amazonaws.ec2#Placement$SpreadDomain */ =>  {
153                let var_27 =
154                    Some(
155                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
156                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
157                            .into()
158                        )
159                        ?
160                    )
161                ;
162                builder = builder.set_spread_domain(var_27);
163            }
164            ,
165            s if s.matches("hostResourceGroupArn") /* HostResourceGroupArn com.amazonaws.ec2#Placement$HostResourceGroupArn */ =>  {
166                let var_28 =
167                    Some(
168                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
169                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
170                            .into()
171                        )
172                        ?
173                    )
174                ;
175                builder = builder.set_host_resource_group_arn(var_28);
176            }
177            ,
178            s if s.matches("groupId") /* GroupId com.amazonaws.ec2#Placement$GroupId */ =>  {
179                let var_29 =
180                    Some(
181                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
182                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
183                            .into()
184                        )
185                        ?
186                    )
187                ;
188                builder = builder.set_group_id(var_29);
189            }
190            ,
191            s if s.matches("availabilityZone") /* AvailabilityZone com.amazonaws.ec2#Placement$AvailabilityZone */ =>  {
192                let var_30 =
193                    Some(
194                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
195                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
196                            .into()
197                        )
198                        ?
199                    )
200                ;
201                builder = builder.set_availability_zone(var_30);
202            }
203            ,
204            _ => {}
205        }
206    }
207    Ok(builder.build())
208}