aws_sdk_s3/protocol_serde/
shape_grantee.rs
1pub fn ser_grantee(
3 input: &crate::types::Grantee,
4 writer: ::aws_smithy_xml::encode::ElWriter,
5) -> Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6 let mut writer = writer;
7 {
8 writer.write_attribute("xsi:type", input.r#type.as_str());
9 }
10 #[allow(unused_mut)]
11 let mut scope = writer.finish();
12 if let Some(var_1) = &input.display_name {
13 let mut inner_writer = scope.start_el("DisplayName").finish();
14 inner_writer.data(var_1.as_str());
15 }
16 if let Some(var_2) = &input.email_address {
17 let mut inner_writer = scope.start_el("EmailAddress").finish();
18 inner_writer.data(var_2.as_str());
19 }
20 if let Some(var_3) = &input.id {
21 let mut inner_writer = scope.start_el("ID").finish();
22 inner_writer.data(var_3.as_str());
23 }
24 if let Some(var_4) = &input.uri {
25 let mut inner_writer = scope.start_el("URI").finish();
26 inner_writer.data(var_4.as_str());
27 }
28 scope.finish();
29 Ok(())
30}
31
32#[allow(clippy::needless_question_mark)]
33pub fn de_grantee(decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder) -> Result<crate::types::Grantee, ::aws_smithy_xml::decode::XmlDecodeError> {
34 #[allow(unused_mut)]
35 let mut builder = crate::types::Grantee::builder();
36 let attrib_5 = {
37 let s = decoder.start_el().attr("xsi:type");
38 match s {
39 None => None,
40 Some(s) => Some(Result::<crate::types::Type, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
41 crate::types::Type::from(s),
42 )?),
43 }
44 };
45 builder.r#type = attrib_5;
46 while let Some(mut tag) = decoder.next_tag() {
47 match tag.start_el() {
48 s if s.matches("DisplayName") => {
49 let var_6 =
50 Some(
51 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
52 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
53 .into()
54 )
55 ?
56 )
57 ;
58 builder = builder.set_display_name(var_6);
59 }
60 ,
61 s if s.matches("EmailAddress") => {
62 let var_7 =
63 Some(
64 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
65 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
66 .into()
67 )
68 ?
69 )
70 ;
71 builder = builder.set_email_address(var_7);
72 }
73 ,
74 s if s.matches("ID") => {
75 let var_8 =
76 Some(
77 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
78 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
79 .into()
80 )
81 ?
82 )
83 ;
84 builder = builder.set_id(var_8);
85 }
86 ,
87 s if s.matches("URI") => {
88 let var_9 =
89 Some(
90 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
91 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
92 .into()
93 )
94 ?
95 )
96 ;
97 builder = builder.set_uri(var_9);
98 }
99 ,
100 _ => {}
101 }
102 }
103 Ok(crate::serde_util::grantee_correct_errors(builder)
104 .build()
105 .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
106}