aws_sdk_ec2/protocol_serde/
shape_placement.rs1#[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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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}