aws_sdk_s3/protocol_serde/
shape_cors_rule.rs
1#[allow(clippy::needless_question_mark)]
3pub fn de_cors_rule(
4 decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
5) -> ::std::result::Result<crate::types::CorsRule, ::aws_smithy_xml::decode::XmlDecodeError> {
6 #[allow(unused_mut)]
7 let mut builder = crate::types::CorsRule::builder();
8 while let Some(mut tag) = decoder.next_tag() {
9 match tag.start_el() {
10 s if s.matches("ID") => {
11 let var_1 =
12 Some(
13 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
14 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
15 .into()
16 )
17 ?
18 )
19 ;
20 builder = builder.set_id(var_1);
21 }
22 ,
23 s if s.matches("AllowedHeader") => {
24 let var_2 =
25 Some(
26 Result::<::std::vec::Vec::<::std::string::String>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
27 let mut list_3 = builder.allowed_headers.take().unwrap_or_default();
28 list_3.push(
29 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
30 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
31 .into()
32 )
33 ?
34 );
35 list_3
36 })
37 ?
38 )
39 ;
40 builder = builder.set_allowed_headers(var_2);
41 }
42 ,
43 s if s.matches("AllowedMethod") => {
44 let var_4 =
45 Some(
46 Result::<::std::vec::Vec::<::std::string::String>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
47 let mut list_5 = builder.allowed_methods.take().unwrap_or_default();
48 list_5.push(
49 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
50 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
51 .into()
52 )
53 ?
54 );
55 list_5
56 })
57 ?
58 )
59 ;
60 builder = builder.set_allowed_methods(var_4);
61 }
62 ,
63 s if s.matches("AllowedOrigin") => {
64 let var_6 =
65 Some(
66 Result::<::std::vec::Vec::<::std::string::String>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
67 let mut list_7 = builder.allowed_origins.take().unwrap_or_default();
68 list_7.push(
69 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
70 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
71 .into()
72 )
73 ?
74 );
75 list_7
76 })
77 ?
78 )
79 ;
80 builder = builder.set_allowed_origins(var_6);
81 }
82 ,
83 s if s.matches("ExposeHeader") => {
84 let var_8 =
85 Some(
86 Result::<::std::vec::Vec::<::std::string::String>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
87 let mut list_9 = builder.expose_headers.take().unwrap_or_default();
88 list_9.push(
89 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
90 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
91 .into()
92 )
93 ?
94 );
95 list_9
96 })
97 ?
98 )
99 ;
100 builder = builder.set_expose_headers(var_8);
101 }
102 ,
103 s if s.matches("MaxAgeSeconds") => {
104 let var_10 =
105 Some(
106 {
107 <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
108 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
109 )
110 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.s3#MaxAgeSeconds`)"))
111 }
112 ?
113 )
114 ;
115 builder = builder.set_max_age_seconds(var_10);
116 }
117 ,
118 _ => {}
119 }
120 }
121 Ok(crate::serde_util::cors_rule_correct_errors(builder)
122 .build()
123 .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
124}
125
126pub fn ser_cors_rule(
127 input: &crate::types::CorsRule,
128 writer: ::aws_smithy_xml::encode::ElWriter,
129) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
130 #[allow(unused_mut)]
131 let mut scope = writer.finish();
132 if let Some(var_11) = &input.id {
133 let mut inner_writer = scope.start_el("ID").finish();
134 inner_writer.data(var_11.as_str());
135 }
136 if let Some(var_12) = &input.allowed_headers {
137 for list_item_13 in var_12 {
138 {
139 let mut inner_writer = scope.start_el("AllowedHeader").finish();
140 inner_writer.data(list_item_13.as_str());
141 }
142 }
143 }
144 {
145 for list_item_14 in &input.allowed_methods {
146 {
147 let mut inner_writer = scope.start_el("AllowedMethod").finish();
148 inner_writer.data(list_item_14.as_str());
149 }
150 }
151 }
152 {
153 for list_item_15 in &input.allowed_origins {
154 {
155 let mut inner_writer = scope.start_el("AllowedOrigin").finish();
156 inner_writer.data(list_item_15.as_str());
157 }
158 }
159 }
160 if let Some(var_16) = &input.expose_headers {
161 for list_item_17 in var_16 {
162 {
163 let mut inner_writer = scope.start_el("ExposeHeader").finish();
164 inner_writer.data(list_item_17.as_str());
165 }
166 }
167 }
168 if let Some(var_18) = &input.max_age_seconds {
169 let mut inner_writer = scope.start_el("MaxAgeSeconds").finish();
170 inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_18).encode());
171 }
172 scope.finish();
173 Ok(())
174}