aws_sdk_s3/protocol_serde/
shape_destination.rs
1pub fn ser_destination(
3 input: &crate::types::Destination,
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 {
9 let mut inner_writer = scope.start_el("Bucket").finish();
10 inner_writer.data(input.bucket.as_str());
11 }
12 if let Some(var_1) = &input.account {
13 let mut inner_writer = scope.start_el("Account").finish();
14 inner_writer.data(var_1.as_str());
15 }
16 if let Some(var_2) = &input.storage_class {
17 let mut inner_writer = scope.start_el("StorageClass").finish();
18 inner_writer.data(var_2.as_str());
19 }
20 if let Some(var_3) = &input.access_control_translation {
21 let inner_writer = scope.start_el("AccessControlTranslation");
22 crate::protocol_serde::shape_access_control_translation::ser_access_control_translation(var_3, inner_writer)?
23 }
24 if let Some(var_4) = &input.encryption_configuration {
25 let inner_writer = scope.start_el("EncryptionConfiguration");
26 crate::protocol_serde::shape_encryption_configuration::ser_encryption_configuration(var_4, inner_writer)?
27 }
28 if let Some(var_5) = &input.replication_time {
29 let inner_writer = scope.start_el("ReplicationTime");
30 crate::protocol_serde::shape_replication_time::ser_replication_time(var_5, inner_writer)?
31 }
32 if let Some(var_6) = &input.metrics {
33 let inner_writer = scope.start_el("Metrics");
34 crate::protocol_serde::shape_metrics::ser_metrics(var_6, inner_writer)?
35 }
36 scope.finish();
37 Ok(())
38}
39
40#[allow(clippy::needless_question_mark)]
41pub fn de_destination(
42 decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
43) -> ::std::result::Result<crate::types::Destination, ::aws_smithy_xml::decode::XmlDecodeError> {
44 #[allow(unused_mut)]
45 let mut builder = crate::types::Destination::builder();
46 while let Some(mut tag) = decoder.next_tag() {
47 match tag.start_el() {
48 s if s.matches("Bucket") => {
49 let var_7 =
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_bucket(var_7);
59 }
60 ,
61 s if s.matches("Account") => {
62 let var_8 =
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_account(var_8);
72 }
73 ,
74 s if s.matches("StorageClass") => {
75 let var_9 =
76 Some(
77 Result::<crate::types::StorageClass, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
78 crate::types::StorageClass::from(
79 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
80 )
81 )
82 ?
83 )
84 ;
85 builder = builder.set_storage_class(var_9);
86 }
87 ,
88 s if s.matches("AccessControlTranslation") => {
89 let var_10 =
90 Some(
91 crate::protocol_serde::shape_access_control_translation::de_access_control_translation(&mut tag)
92 ?
93 )
94 ;
95 builder = builder.set_access_control_translation(var_10);
96 }
97 ,
98 s if s.matches("EncryptionConfiguration") => {
99 let var_11 =
100 Some(
101 crate::protocol_serde::shape_encryption_configuration::de_encryption_configuration(&mut tag)
102 ?
103 )
104 ;
105 builder = builder.set_encryption_configuration(var_11);
106 }
107 ,
108 s if s.matches("ReplicationTime") => {
109 let var_12 =
110 Some(
111 crate::protocol_serde::shape_replication_time::de_replication_time(&mut tag)
112 ?
113 )
114 ;
115 builder = builder.set_replication_time(var_12);
116 }
117 ,
118 s if s.matches("Metrics") => {
119 let var_13 =
120 Some(
121 crate::protocol_serde::shape_metrics::de_metrics(&mut tag)
122 ?
123 )
124 ;
125 builder = builder.set_metrics(var_13);
126 }
127 ,
128 _ => {}
129 }
130 }
131 Ok(crate::serde_util::destination_correct_errors(builder)
132 .build()
133 .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
134}