aws_sdk_s3/protocol_serde/
shape_public_access_block_configuration.rs
1pub fn ser_public_access_block_configuration(
3 input: &crate::types::PublicAccessBlockConfiguration,
4 writer: ::aws_smithy_xml::encode::ElWriter,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6 #[allow(unused_mut)]
7 let mut scope = writer.finish();
8 if let Some(var_1) = &input.block_public_acls {
9 let mut inner_writer = scope.start_el("BlockPublicAcls").finish();
10 inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_1).encode());
11 }
12 if let Some(var_2) = &input.ignore_public_acls {
13 let mut inner_writer = scope.start_el("IgnorePublicAcls").finish();
14 inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_2).encode());
15 }
16 if let Some(var_3) = &input.block_public_policy {
17 let mut inner_writer = scope.start_el("BlockPublicPolicy").finish();
18 inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_3).encode());
19 }
20 if let Some(var_4) = &input.restrict_public_buckets {
21 let mut inner_writer = scope.start_el("RestrictPublicBuckets").finish();
22 inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_4).encode());
23 }
24 scope.finish();
25 Ok(())
26}
27
28#[allow(clippy::needless_question_mark)]
29pub fn de_public_access_block_configuration(
30 decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
31) -> ::std::result::Result<crate::types::PublicAccessBlockConfiguration, ::aws_smithy_xml::decode::XmlDecodeError> {
32 #[allow(unused_mut)]
33 let mut builder = crate::types::PublicAccessBlockConfiguration::builder();
34 while let Some(mut tag) = decoder.next_tag() {
35 match tag.start_el() {
36 s if s.matches("BlockPublicAcls") => {
37 let var_5 =
38 Some(
39 {
40 <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
41 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
42 )
43 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.s3#Setting`)"))
44 }
45 ?
46 )
47 ;
48 builder = builder.set_block_public_acls(var_5);
49 }
50 ,
51 s if s.matches("IgnorePublicAcls") => {
52 let var_6 =
53 Some(
54 {
55 <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
56 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
57 )
58 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.s3#Setting`)"))
59 }
60 ?
61 )
62 ;
63 builder = builder.set_ignore_public_acls(var_6);
64 }
65 ,
66 s if s.matches("BlockPublicPolicy") => {
67 let var_7 =
68 Some(
69 {
70 <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
71 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
72 )
73 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.s3#Setting`)"))
74 }
75 ?
76 )
77 ;
78 builder = builder.set_block_public_policy(var_7);
79 }
80 ,
81 s if s.matches("RestrictPublicBuckets") => {
82 let var_8 =
83 Some(
84 {
85 <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
86 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
87 )
88 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.s3#Setting`)"))
89 }
90 ?
91 )
92 ;
93 builder = builder.set_restrict_public_buckets(var_8);
94 }
95 ,
96 _ => {}
97 }
98 }
99 Ok(builder.build())
100}