aws_sdk_quicksight/protocol_serde/
shape_histogram_visual.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub fn ser_histogram_visual(
3    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4    input: &crate::types::HistogramVisual,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6    {
7        object.key("VisualId").string(input.visual_id.as_str());
8    }
9    if let Some(var_1) = &input.title {
10        #[allow(unused_mut)]
11        let mut object_2 = object.key("Title").start_object();
12        crate::protocol_serde::shape_visual_title_label_options::ser_visual_title_label_options(&mut object_2, var_1)?;
13        object_2.finish();
14    }
15    if let Some(var_3) = &input.subtitle {
16        #[allow(unused_mut)]
17        let mut object_4 = object.key("Subtitle").start_object();
18        crate::protocol_serde::shape_visual_subtitle_label_options::ser_visual_subtitle_label_options(&mut object_4, var_3)?;
19        object_4.finish();
20    }
21    if let Some(var_5) = &input.chart_configuration {
22        #[allow(unused_mut)]
23        let mut object_6 = object.key("ChartConfiguration").start_object();
24        crate::protocol_serde::shape_histogram_configuration::ser_histogram_configuration(&mut object_6, var_5)?;
25        object_6.finish();
26    }
27    if let Some(var_7) = &input.actions {
28        let mut array_8 = object.key("Actions").start_array();
29        for item_9 in var_7 {
30            {
31                #[allow(unused_mut)]
32                let mut object_10 = array_8.value().start_object();
33                crate::protocol_serde::shape_visual_custom_action::ser_visual_custom_action(&mut object_10, item_9)?;
34                object_10.finish();
35            }
36        }
37        array_8.finish();
38    }
39    if let Some(var_11) = &input.visual_content_alt_text {
40        object.key("VisualContentAltText").string(var_11.as_str());
41    }
42    Ok(())
43}
44
45pub(crate) fn de_histogram_visual<'a, I>(
46    tokens: &mut ::std::iter::Peekable<I>,
47) -> ::std::result::Result<Option<crate::types::HistogramVisual>, ::aws_smithy_json::deserialize::error::DeserializeError>
48where
49    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
50{
51    match tokens.next().transpose()? {
52        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
53        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
54            #[allow(unused_mut)]
55            let mut builder = crate::types::builders::HistogramVisualBuilder::default();
56            loop {
57                match tokens.next().transpose()? {
58                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
59                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
60                        "VisualId" => {
61                            builder = builder.set_visual_id(
62                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
63                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
64                                    .transpose()?,
65                            );
66                        }
67                        "Title" => {
68                            builder = builder.set_title(crate::protocol_serde::shape_visual_title_label_options::de_visual_title_label_options(
69                                tokens,
70                            )?);
71                        }
72                        "Subtitle" => {
73                            builder = builder
74                                .set_subtitle(crate::protocol_serde::shape_visual_subtitle_label_options::de_visual_subtitle_label_options(tokens)?);
75                        }
76                        "ChartConfiguration" => {
77                            builder = builder
78                                .set_chart_configuration(crate::protocol_serde::shape_histogram_configuration::de_histogram_configuration(tokens)?);
79                        }
80                        "Actions" => {
81                            builder = builder.set_actions(crate::protocol_serde::shape_visual_custom_action_list::de_visual_custom_action_list(
82                                tokens,
83                            )?);
84                        }
85                        "VisualContentAltText" => {
86                            builder = builder.set_visual_content_alt_text(
87                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
88                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
89                                    .transpose()?,
90                            );
91                        }
92                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
93                    },
94                    other => {
95                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
96                            "expected object key or end object, found: {:?}",
97                            other
98                        )))
99                    }
100                }
101            }
102            Ok(Some(crate::serde_util::histogram_visual_correct_errors(builder).build().map_err(
103                |err| ::aws_smithy_json::deserialize::error::DeserializeError::custom_source("Response was invalid", err),
104            )?))
105        }
106        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
107            "expected start object or null",
108        )),
109    }
110}