aws_sdk_elasticache/protocol_serde/
shape_describe_cache_subnet_groups.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_describe_cache_subnet_groups_http_error(
4 _response_status: u16,
5 _response_headers: &::aws_smithy_runtime_api::http::Headers,
6 _response_body: &[u8],
7) -> std::result::Result<
8 crate::operation::describe_cache_subnet_groups::DescribeCacheSubnetGroupsOutput,
9 crate::operation::describe_cache_subnet_groups::DescribeCacheSubnetGroupsError,
10> {
11 #[allow(unused_mut)]
12 let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
13 .map_err(crate::operation::describe_cache_subnet_groups::DescribeCacheSubnetGroupsError::unhandled)?;
14 generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
15 let generic = generic_builder.build();
16 let error_code = match generic.code() {
17 Some(code) => code,
18 None => {
19 return Err(crate::operation::describe_cache_subnet_groups::DescribeCacheSubnetGroupsError::unhandled(
20 generic,
21 ))
22 }
23 };
24
25 let _error_message = generic.message().map(|msg| msg.to_owned());
26 Err(match error_code {
27 "CacheSubnetGroupNotFoundFault" => {
28 crate::operation::describe_cache_subnet_groups::DescribeCacheSubnetGroupsError::CacheSubnetGroupNotFoundFault({
29 #[allow(unused_mut)]
30 let mut tmp = {
31 #[allow(unused_mut)]
32 let mut output = crate::types::error::builders::CacheSubnetGroupNotFoundFaultBuilder::default();
33 output = crate::protocol_serde::shape_cache_subnet_group_not_found_fault::de_cache_subnet_group_not_found_fault_xml_err(
34 _response_body,
35 output,
36 )
37 .map_err(crate::operation::describe_cache_subnet_groups::DescribeCacheSubnetGroupsError::unhandled)?;
38 let output = output.meta(generic);
39 output.build()
40 };
41 if tmp.message.is_none() {
42 tmp.message = _error_message;
43 }
44 tmp
45 })
46 }
47 _ => crate::operation::describe_cache_subnet_groups::DescribeCacheSubnetGroupsError::generic(generic),
48 })
49}
50
51#[allow(clippy::unnecessary_wraps)]
52pub fn de_describe_cache_subnet_groups_http_response(
53 _response_status: u16,
54 _response_headers: &::aws_smithy_runtime_api::http::Headers,
55 _response_body: &[u8],
56) -> std::result::Result<
57 crate::operation::describe_cache_subnet_groups::DescribeCacheSubnetGroupsOutput,
58 crate::operation::describe_cache_subnet_groups::DescribeCacheSubnetGroupsError,
59> {
60 Ok({
61 #[allow(unused_mut)]
62 let mut output = crate::operation::describe_cache_subnet_groups::builders::DescribeCacheSubnetGroupsOutputBuilder::default();
63 output = crate::protocol_serde::shape_describe_cache_subnet_groups::de_describe_cache_subnet_groups(_response_body, output)
64 .map_err(crate::operation::describe_cache_subnet_groups::DescribeCacheSubnetGroupsError::unhandled)?;
65 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
66 output.build()
67 })
68}
69
70#[allow(unused_mut)]
71pub fn de_describe_cache_subnet_groups(
72 inp: &[u8],
73 mut builder: crate::operation::describe_cache_subnet_groups::builders::DescribeCacheSubnetGroupsOutputBuilder,
74) -> std::result::Result<
75 crate::operation::describe_cache_subnet_groups::builders::DescribeCacheSubnetGroupsOutputBuilder,
76 ::aws_smithy_xml::decode::XmlDecodeError,
77> {
78 let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
79
80 #[allow(unused_mut)]
81 let mut decoder = doc.root_element()?;
82 #[allow(unused_variables)]
83 let start_el = decoder.start_el();
84 if !(start_el.matches("DescribeCacheSubnetGroupsResponse")) {
85 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
86 "invalid root, expected DescribeCacheSubnetGroupsResponse got {:?}",
87 start_el
88 )));
89 }
90 if let Some(mut result_tag) = decoder.next_tag() {
91 let start_el = result_tag.start_el();
92 if !(start_el.matches("DescribeCacheSubnetGroupsResult")) {
93 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
94 "invalid result, expected DescribeCacheSubnetGroupsResult got {:?}",
95 start_el
96 )));
97 }
98 while let Some(mut tag) = result_tag.next_tag() {
99 match tag.start_el() {
100 s if s.matches("Marker") => {
101 let var_1 =
102 Some(
103 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
104 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
105 .into()
106 )
107 ?
108 )
109 ;
110 builder = builder.set_marker(var_1);
111 }
112 ,
113 s if s.matches("CacheSubnetGroups") => {
114 let var_2 =
115 Some(
116 crate::protocol_serde::shape_cache_subnet_groups::de_cache_subnet_groups(&mut tag)
117 ?
118 )
119 ;
120 builder = builder.set_cache_subnet_groups(var_2);
121 }
122 ,
123 _ => {}
124 }
125 }
126 } else {
127 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(
128 "expected DescribeCacheSubnetGroupsResult tag",
129 ));
130 };
131 Ok(builder)
132}