aws_sdk_databasemigration/protocol_serde/
shape_data_provider_settings.rs1pub 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}