aws_sdk_databasemigration/protocol_serde/
shape_data_provider_settings.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub fn ser_data_provider_settings(
3    object_6: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4    input: &crate::types::DataProviderSettings,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6    match input {
7        crate::types::DataProviderSettings::RedshiftSettings(inner) => {
8            #[allow(unused_mut)]
9            let mut object_1 = object_6.key("RedshiftSettings").start_object();
10            crate::protocol_serde::shape_redshift_data_provider_settings::ser_redshift_data_provider_settings(&mut object_1, inner)?;
11            object_1.finish();
12        }
13        crate::types::DataProviderSettings::PostgreSqlSettings(inner) => {
14            #[allow(unused_mut)]
15            let mut object_2 = object_6.key("PostgreSqlSettings").start_object();
16            crate::protocol_serde::shape_postgre_sql_data_provider_settings::ser_postgre_sql_data_provider_settings(&mut object_2, inner)?;
17            object_2.finish();
18        }
19        crate::types::DataProviderSettings::MySqlSettings(inner) => {
20            #[allow(unused_mut)]
21            let mut object_3 = object_6.key("MySqlSettings").start_object();
22            crate::protocol_serde::shape_my_sql_data_provider_settings::ser_my_sql_data_provider_settings(&mut object_3, inner)?;
23            object_3.finish();
24        }
25        crate::types::DataProviderSettings::OracleSettings(inner) => {
26            #[allow(unused_mut)]
27            let mut object_4 = object_6.key("OracleSettings").start_object();
28            crate::protocol_serde::shape_oracle_data_provider_settings::ser_oracle_data_provider_settings(&mut object_4, inner)?;
29            object_4.finish();
30        }
31        crate::types::DataProviderSettings::MicrosoftSqlServerSettings(inner) => {
32            #[allow(unused_mut)]
33            let mut object_5 = object_6.key("MicrosoftSqlServerSettings").start_object();
34            crate::protocol_serde::shape_microsoft_sql_server_data_provider_settings::ser_microsoft_sql_server_data_provider_settings(
35                &mut object_5,
36                inner,
37            )?;
38            object_5.finish();
39        }
40        crate::types::DataProviderSettings::DocDbSettings(inner) => {
41            #[allow(unused_mut)]
42            let mut object_6 = object_6.key("DocDbSettings").start_object();
43            crate::protocol_serde::shape_doc_db_data_provider_settings::ser_doc_db_data_provider_settings(&mut object_6, inner)?;
44            object_6.finish();
45        }
46        crate::types::DataProviderSettings::MariaDbSettings(inner) => {
47            #[allow(unused_mut)]
48            let mut object_7 = object_6.key("MariaDbSettings").start_object();
49            crate::protocol_serde::shape_maria_db_data_provider_settings::ser_maria_db_data_provider_settings(&mut object_7, inner)?;
50            object_7.finish();
51        }
52        crate::types::DataProviderSettings::IbmDb2LuwSettings(inner) => {
53            #[allow(unused_mut)]
54            let mut object_8 = object_6.key("IbmDb2LuwSettings").start_object();
55            crate::protocol_serde::shape_ibm_db2_luw_data_provider_settings::ser_ibm_db2_luw_data_provider_settings(&mut object_8, inner)?;
56            object_8.finish();
57        }
58        crate::types::DataProviderSettings::IbmDb2zOsSettings(inner) => {
59            #[allow(unused_mut)]
60            let mut object_9 = object_6.key("IbmDb2zOsSettings").start_object();
61            crate::protocol_serde::shape_ibm_db2z_os_data_provider_settings::ser_ibm_db2z_os_data_provider_settings(&mut object_9, inner)?;
62            object_9.finish();
63        }
64        crate::types::DataProviderSettings::MongoDbSettings(inner) => {
65            #[allow(unused_mut)]
66            let mut object_10 = object_6.key("MongoDbSettings").start_object();
67            crate::protocol_serde::shape_mongo_db_data_provider_settings::ser_mongo_db_data_provider_settings(&mut object_10, inner)?;
68            object_10.finish();
69        }
70        crate::types::DataProviderSettings::Unknown => {
71            return Err(::aws_smithy_types::error::operation::SerializationError::unknown_variant(
72                "DataProviderSettings",
73            ))
74        }
75    }
76    Ok(())
77}
78
79pub(crate) fn de_data_provider_settings<'a, I>(
80    tokens: &mut ::std::iter::Peekable<I>,
81) -> ::std::result::Result<Option<crate::types::DataProviderSettings>, ::aws_smithy_json::deserialize::error::DeserializeError>
82where
83    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
84{
85    let mut variant = None;
86    match tokens.next().transpose()? {
87        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
88        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => loop {
89            match tokens.next().transpose()? {
90                Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
91                Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
92                    if let ::std::option::Option::Some(::std::result::Result::Ok(::aws_smithy_json::deserialize::Token::ValueNull { .. })) =
93                        tokens.peek()
94                    {
95                        let _ = tokens.next().expect("peek returned a token")?;
96                        continue;
97                    }
98                    let key = key.to_unescaped()?;
99                    if key == "__type" {
100                        ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
101                        continue;
102                    }
103                    if variant.is_some() {
104                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
105                            "encountered mixed variants in union",
106                        ));
107                    }
108                    variant = match key.as_ref() {
109                        "RedshiftSettings" => Some(crate::types::DataProviderSettings::RedshiftSettings(
110                            crate::protocol_serde::shape_redshift_data_provider_settings::de_redshift_data_provider_settings(tokens)?.ok_or_else(
111                                || ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'RedshiftSettings' cannot be null"),
112                            )?,
113                        )),
114                        "PostgreSqlSettings" => Some(crate::types::DataProviderSettings::PostgreSqlSettings(
115                            crate::protocol_serde::shape_postgre_sql_data_provider_settings::de_postgre_sql_data_provider_settings(tokens)?
116                                .ok_or_else(|| {
117                                    ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'PostgreSqlSettings' cannot be null")
118                                })?,
119                        )),
120                        "MySqlSettings" => Some(crate::types::DataProviderSettings::MySqlSettings(
121                            crate::protocol_serde::shape_my_sql_data_provider_settings::de_my_sql_data_provider_settings(tokens)?.ok_or_else(
122                                || ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'MySqlSettings' cannot be null"),
123                            )?,
124                        )),
125                        "OracleSettings" => Some(crate::types::DataProviderSettings::OracleSettings(
126                            crate::protocol_serde::shape_oracle_data_provider_settings::de_oracle_data_provider_settings(tokens)?.ok_or_else(
127                                || ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'OracleSettings' cannot be null"),
128                            )?,
129                        )),
130                        "MicrosoftSqlServerSettings" => Some(crate::types::DataProviderSettings::MicrosoftSqlServerSettings(
131                            crate::protocol_serde::shape_microsoft_sql_server_data_provider_settings::de_microsoft_sql_server_data_provider_settings(
132                                tokens,
133                            )?
134                            .ok_or_else(|| {
135                                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
136                                    "value for 'MicrosoftSqlServerSettings' cannot be null",
137                                )
138                            })?,
139                        )),
140                        "DocDbSettings" => Some(crate::types::DataProviderSettings::DocDbSettings(
141                            crate::protocol_serde::shape_doc_db_data_provider_settings::de_doc_db_data_provider_settings(tokens)?.ok_or_else(
142                                || ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'DocDbSettings' cannot be null"),
143                            )?,
144                        )),
145                        "MariaDbSettings" => Some(crate::types::DataProviderSettings::MariaDbSettings(
146                            crate::protocol_serde::shape_maria_db_data_provider_settings::de_maria_db_data_provider_settings(tokens)?.ok_or_else(
147                                || ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'MariaDbSettings' cannot be null"),
148                            )?,
149                        )),
150                        "IbmDb2LuwSettings" => Some(crate::types::DataProviderSettings::IbmDb2LuwSettings(
151                            crate::protocol_serde::shape_ibm_db2_luw_data_provider_settings::de_ibm_db2_luw_data_provider_settings(tokens)?
152                                .ok_or_else(|| {
153                                    ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'IbmDb2LuwSettings' cannot be null")
154                                })?,
155                        )),
156                        "IbmDb2zOsSettings" => Some(crate::types::DataProviderSettings::IbmDb2zOsSettings(
157                            crate::protocol_serde::shape_ibm_db2z_os_data_provider_settings::de_ibm_db2z_os_data_provider_settings(tokens)?
158                                .ok_or_else(|| {
159                                    ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'IbmDb2zOsSettings' cannot be null")
160                                })?,
161                        )),
162                        "MongoDbSettings" => Some(crate::types::DataProviderSettings::MongoDbSettings(
163                            crate::protocol_serde::shape_mongo_db_data_provider_settings::de_mongo_db_data_provider_settings(tokens)?.ok_or_else(
164                                || ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'MongoDbSettings' cannot be null"),
165                            )?,
166                        )),
167                        _ => {
168                            ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
169                            Some(crate::types::DataProviderSettings::Unknown)
170                        }
171                    };
172                }
173                other => {
174                    return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
175                        "expected object key or end object, found: {:?}",
176                        other
177                    )))
178                }
179            }
180        },
181        _ => {
182            return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
183                "expected start object or null",
184            ))
185        }
186    }
187    if variant.is_none() {
188        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
189            "Union did not contain a valid variant.",
190        ));
191    }
192    Ok(variant)
193}