Skip to main content

aws_sdk_cloudwatch/protocol_serde/
shape_get_metric_widget_image.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_get_metric_widget_image_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::get_metric_widget_image::GetMetricWidgetImageOutput,
9    crate::operation::get_metric_widget_image::GetMetricWidgetImageError,
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::get_metric_widget_image::GetMetricWidgetImageError::unhandled)?;
14    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
15    let generic = generic_builder.build();
16    Err(crate::operation::get_metric_widget_image::GetMetricWidgetImageError::generic(generic))
17}
18
19#[allow(clippy::unnecessary_wraps)]
20pub fn de_get_metric_widget_image_http_response(
21    _response_status: u16,
22    _response_headers: &::aws_smithy_runtime_api::http::Headers,
23    _response_body: &[u8],
24) -> std::result::Result<
25    crate::operation::get_metric_widget_image::GetMetricWidgetImageOutput,
26    crate::operation::get_metric_widget_image::GetMetricWidgetImageError,
27> {
28    Ok({
29        #[allow(unused_mut)]
30        let mut output = crate::operation::get_metric_widget_image::builders::GetMetricWidgetImageOutputBuilder::default();
31        output = crate::protocol_serde::shape_get_metric_widget_image::de_get_metric_widget_image(_response_body, output)
32            .map_err(crate::operation::get_metric_widget_image::GetMetricWidgetImageError::unhandled)?;
33        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
34        output.build()
35    })
36}
37
38pub fn ser_get_metric_widget_image_input(
39    input: &crate::operation::get_metric_widget_image::GetMetricWidgetImageInput,
40) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
41    let mut encoder = ::aws_smithy_cbor::Encoder::new(Vec::new());
42    {
43        let encoder = &mut encoder;
44        crate::protocol_serde::shape_get_metric_widget_image_input::ser_get_metric_widget_image_input_input(encoder, input)?;
45    }
46    Ok(::aws_smithy_types::body::SdkBody::from(encoder.into_writer()))
47}
48
49pub(crate) fn de_get_metric_widget_image(
50    value: &[u8],
51    mut builder: crate::operation::get_metric_widget_image::builders::GetMetricWidgetImageOutputBuilder,
52) -> ::std::result::Result<
53    crate::operation::get_metric_widget_image::builders::GetMetricWidgetImageOutputBuilder,
54    ::aws_smithy_cbor::decode::DeserializeError,
55> {
56    #[allow(clippy::match_single_binding)]
57    fn pair(
58        mut builder: crate::operation::get_metric_widget_image::builders::GetMetricWidgetImageOutputBuilder,
59        decoder: &mut ::aws_smithy_cbor::Decoder,
60    ) -> ::std::result::Result<
61        crate::operation::get_metric_widget_image::builders::GetMetricWidgetImageOutputBuilder,
62        ::aws_smithy_cbor::decode::DeserializeError,
63    > {
64        builder = match decoder.str()?.as_ref() {
65            "MetricWidgetImage" => ::aws_smithy_cbor::decode::set_optional(builder, decoder, |builder, decoder| {
66                Ok(builder.set_metric_widget_image(Some(decoder.blob()?)))
67            })?,
68            _ => {
69                decoder.skip()?;
70                builder
71            }
72        };
73        Ok(builder)
74    }
75
76    let decoder = &mut ::aws_smithy_cbor::Decoder::new(value);
77
78    match decoder.map()? {
79        None => loop {
80            match decoder.datatype()? {
81                ::aws_smithy_cbor::data::Type::Break => {
82                    decoder.skip()?;
83                    break;
84                }
85                _ => {
86                    builder = pair(builder, decoder)?;
87                }
88            };
89        },
90        Some(n) => {
91            for _ in 0..n {
92                builder = pair(builder, decoder)?;
93            }
94        }
95    };
96
97    if decoder.position() != value.len() {
98        return Err(::aws_smithy_cbor::decode::DeserializeError::expected_end_of_stream(decoder.position()));
99    }
100
101    Ok(builder)
102}