Skip to main content

aws_sdk_cloudwatch/protocol_serde/
shape_metric_stream_statistics_metric.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub fn ser_metric_stream_statistics_metric(
3    encoder: &mut ::aws_smithy_cbor::Encoder,
4    #[allow(unused)] input: &crate::types::MetricStreamStatisticsMetric,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6    encoder.begin_map();
7    if let Some(var_1) = &input.namespace {
8        encoder.str("Namespace").str(var_1.as_str());
9    }
10    if let Some(var_2) = &input.metric_name {
11        encoder.str("MetricName").str(var_2.as_str());
12    }
13    encoder.end();
14    Ok(())
15}
16
17pub(crate) fn de_metric_stream_statistics_metric(
18    decoder: &mut ::aws_smithy_cbor::Decoder,
19) -> ::std::result::Result<crate::types::MetricStreamStatisticsMetric, ::aws_smithy_cbor::decode::DeserializeError> {
20    #[allow(clippy::match_single_binding)]
21    fn pair(
22        mut builder: crate::types::builders::MetricStreamStatisticsMetricBuilder,
23        decoder: &mut ::aws_smithy_cbor::Decoder,
24    ) -> ::std::result::Result<crate::types::builders::MetricStreamStatisticsMetricBuilder, ::aws_smithy_cbor::decode::DeserializeError> {
25        builder = match decoder.str()?.as_ref() {
26            "Namespace" => builder.set_namespace(Some(decoder.string()?)),
27            "MetricName" => builder.set_metric_name(Some(decoder.string()?)),
28            _ => {
29                decoder.skip()?;
30                builder
31            }
32        };
33        Ok(builder)
34    }
35
36    let mut builder = crate::types::builders::MetricStreamStatisticsMetricBuilder::default();
37
38    match decoder.map()? {
39        None => loop {
40            match decoder.datatype()? {
41                ::aws_smithy_cbor::data::Type::Break => {
42                    decoder.skip()?;
43                    break;
44                }
45                _ => {
46                    builder = pair(builder, decoder)?;
47                }
48            };
49        },
50        Some(n) => {
51            for _ in 0..n {
52                builder = pair(builder, decoder)?;
53            }
54        }
55    };
56    #[allow(clippy::needless_question_mark)]
57    {
58        return Ok(crate::serde_util::metric_stream_statistics_metric_correct_errors(builder).build());
59    }
60}