aws_sdk_s3/protocol_serde/
shape_lifecycle_rule_and_operator.rs
1#[allow(clippy::needless_question_mark)]
3pub fn de_lifecycle_rule_and_operator(
4 decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
5) -> ::std::result::Result<crate::types::LifecycleRuleAndOperator, ::aws_smithy_xml::decode::XmlDecodeError> {
6 #[allow(unused_mut)]
7 let mut builder = crate::types::LifecycleRuleAndOperator::builder();
8 while let Some(mut tag) = decoder.next_tag() {
9 match tag.start_el() {
10 s if s.matches("Prefix") => {
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_prefix(var_1);
21 }
22 ,
23 s if s.matches("Tag") => {
24 let var_2 =
25 Some(
26 Result::<::std::vec::Vec::<crate::types::Tag>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
27 let mut list_3 = builder.tags.take().unwrap_or_default();
28 list_3.push(
29 crate::protocol_serde::shape_tag::de_tag(&mut tag)
30 ?
31 );
32 list_3
33 })
34 ?
35 )
36 ;
37 builder = builder.set_tags(var_2);
38 }
39 ,
40 s if s.matches("ObjectSizeGreaterThan") => {
41 let var_4 =
42 Some(
43 {
44 <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
45 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
46 )
47 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#ObjectSizeGreaterThanBytes`)"))
48 }
49 ?
50 )
51 ;
52 builder = builder.set_object_size_greater_than(var_4);
53 }
54 ,
55 s if s.matches("ObjectSizeLessThan") => {
56 let var_5 =
57 Some(
58 {
59 <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
60 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
61 )
62 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#ObjectSizeLessThanBytes`)"))
63 }
64 ?
65 )
66 ;
67 builder = builder.set_object_size_less_than(var_5);
68 }
69 ,
70 _ => {}
71 }
72 }
73 Ok(builder.build())
74}
75
76pub fn ser_lifecycle_rule_and_operator(
77 input: &crate::types::LifecycleRuleAndOperator,
78 writer: ::aws_smithy_xml::encode::ElWriter,
79) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
80 #[allow(unused_mut)]
81 let mut scope = writer.finish();
82 if let Some(var_6) = &input.prefix {
83 let mut inner_writer = scope.start_el("Prefix").finish();
84 inner_writer.data(var_6.as_str());
85 }
86 if let Some(var_7) = &input.tags {
87 for list_item_8 in var_7 {
88 {
89 let inner_writer = scope.start_el("Tag");
90 crate::protocol_serde::shape_tag::ser_tag(list_item_8, inner_writer)?
91 }
92 }
93 }
94 if let Some(var_9) = &input.object_size_greater_than {
95 let mut inner_writer = scope.start_el("ObjectSizeGreaterThan").finish();
96 inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_9).encode());
97 }
98 if let Some(var_10) = &input.object_size_less_than {
99 let mut inner_writer = scope.start_el("ObjectSizeLessThan").finish();
100 inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_10).encode());
101 }
102 scope.finish();
103 Ok(())
104}