1 - | // Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2 - | pub(crate) fn de_kitchen_sink<'a, I>(
|
3 - | tokens: &mut ::std::iter::Peekable<I>,
|
4 - | _value: &'a [u8],
|
5 - | ) -> ::std::result::Result<Option<crate::types::KitchenSink>, ::aws_smithy_json::deserialize::error::DeserializeError>
|
6 - | where
|
7 - | I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
|
8 - | {
|
9 - | match tokens.next().transpose()? {
|
10 - | Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
|
11 - | Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
|
12 - | #[allow(unused_mut)]
|
13 - | let mut builder = crate::types::builders::KitchenSinkBuilder::default();
|
14 - | loop {
|
15 - | match tokens.next().transpose()? {
|
16 - | Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
|
17 - | Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
|
18 - | "Blob" => {
|
19 - | builder = builder.set_blob(::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?);
|
20 - | }
|
21 - | "Boolean" => {
|
22 - | builder = builder.set_boolean(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
|
23 - | }
|
24 - | "Double" => {
|
25 - | builder = builder
|
26 - | .set_double(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy()));
|
27 - | }
|
28 - | "EmptyStruct" => {
|
29 - | builder = builder.set_empty_struct(crate::protocol_serde::shape_empty_struct::de_empty_struct(tokens, _value)?);
|
30 - | }
|
31 - | "Float" => {
|
32 - | builder = builder
|
33 - | .set_float(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy()));
|
34 - | }
|
35 - | "HttpdateTimestamp" => {
|
36 - | builder = builder.set_httpdate_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
|
37 - | tokens.next(),
|
38 - | ::aws_smithy_types::date_time::Format::HttpDate,
|
39 - | )?);
|
40 - | }
|
41 - | "Integer" => {
|
42 - | builder = builder.set_integer(
|
43 - | ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
|
44 - | .map(i32::try_from)
|
45 - | .transpose()?,
|
46 - | );
|
47 - | }
|
48 - | "Iso8601Timestamp" => {
|
49 - | builder = builder.set_iso8601_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
|
50 - | tokens.next(),
|
51 - | ::aws_smithy_types::date_time::Format::DateTimeWithOffset,
|
52 - | )?);
|
53 - | }
|
54 - | "JsonValue" => {
|
55 - | builder = builder.set_json_value(
|
56 - | ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
|
57 - | .map(|s| s.to_unescaped().map(|u| u.into_owned()))
|
58 - | .transpose()?,
|
59 - | );
|
60 - | }
|
61 - | "ListOfLists" => {
|
62 - | builder = builder.set_list_of_lists(crate::protocol_serde::shape_list_of_list_of_strings::de_list_of_list_of_strings(
|
63 - | tokens, _value,
|
64 - | )?);
|
65 - | }
|
66 - | "ListOfMapsOfStrings" => {
|
67 - | builder = builder.set_list_of_maps_of_strings(
|
68 - | crate::protocol_serde::shape_list_of_maps_of_strings::de_list_of_maps_of_strings(tokens, _value)?,
|
69 - | );
|
70 - | }
|
71 - | "ListOfStrings" => {
|
72 - | builder = builder.set_list_of_strings(crate::protocol_serde::shape_list_of_strings::de_list_of_strings(tokens, _value)?);
|
73 - | }
|
74 - | "ListOfStructs" => {
|
75 - | builder = builder.set_list_of_structs(crate::protocol_serde::shape_list_of_structs::de_list_of_structs(tokens, _value)?);
|
76 - | }
|
77 - | "Long" => {
|
78 - | builder = builder.set_long(
|
79 - | ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
|
80 - | .map(i64::try_from)
|
81 - | .transpose()?,
|
82 - | );
|
83 - | }
|
84 - | "MapOfListsOfStrings" => {
|
85 - | builder = builder.set_map_of_lists_of_strings(
|
86 - | crate::protocol_serde::shape_map_of_lists_of_strings::de_map_of_lists_of_strings(tokens, _value)?,
|
87 - | );
|
88 - | }
|
89 - | "MapOfMaps" => {
|
90 - | builder = builder.set_map_of_maps(crate::protocol_serde::shape_map_of_map_of_strings::de_map_of_map_of_strings(
|
91 - | tokens, _value,
|
92 - | )?);
|
93 - | }
|
94 - | "MapOfStrings" => {
|
95 - | builder = builder.set_map_of_strings(crate::protocol_serde::shape_map_of_strings::de_map_of_strings(tokens, _value)?);
|
96 - | }
|
97 - | "MapOfStructs" => {
|
98 - | builder = builder.set_map_of_structs(crate::protocol_serde::shape_map_of_structs::de_map_of_structs(tokens, _value)?);
|
99 - | }
|
100 - | "RecursiveList" => {
|
101 - | builder = builder.set_recursive_list(crate::protocol_serde::shape_list_of_kitchen_sinks::de_list_of_kitchen_sinks(
|
102 - | tokens, _value,
|
103 - | )?);
|
104 - | }
|
105 - | "RecursiveMap" => {
|
106 - | builder = builder.set_recursive_map(crate::protocol_serde::shape_map_of_kitchen_sinks::de_map_of_kitchen_sinks(
|
107 - | tokens, _value,
|
108 - | )?);
|
109 - | }
|
110 - | "RecursiveStruct" => {
|
111 - | builder = builder
|
112 - | .set_recursive_struct(crate::protocol_serde::shape_kitchen_sink::de_kitchen_sink(tokens, _value)?.map(Box::new));
|
113 - | }
|
114 - | "SimpleStruct" => {
|
115 - | builder = builder.set_simple_struct(crate::protocol_serde::shape_simple_struct::de_simple_struct(tokens, _value)?);
|
116 - | }
|
117 - | "String" => {
|
118 - | builder = builder.set_string(
|
119 - | ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
|
120 - | .map(|s| s.to_unescaped().map(|u| u.into_owned()))
|
121 - | .transpose()?,
|
122 - | );
|
123 - | }
|
124 - | "StructWithJsonName" => {
|
125 - | builder = builder.set_struct_with_json_name(
|
126 - | crate::protocol_serde::shape_struct_with_json_name::de_struct_with_json_name(tokens, _value)?,
|
127 - | );
|
128 - | }
|
129 - | "Timestamp" => {
|
130 - | builder = builder.set_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
|
131 - | tokens.next(),
|
132 - | ::aws_smithy_types::date_time::Format::EpochSeconds,
|
133 - | )?);
|
134 - | }
|
135 - | "UnixTimestamp" => {
|
136 - | builder = builder.set_unix_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
|
137 - | tokens.next(),
|
138 - | ::aws_smithy_types::date_time::Format::EpochSeconds,
|
139 - | )?);
|
140 - | }
|
141 - | _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
|
142 - | },
|
143 - | other => {
|
144 - | return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
|
145 - | "expected object key or end object, found: {other:?}"
|
146 - | )))
|
147 - | }
|
148 - | }
|
149 - | }
|
150 - | Ok(Some(builder.build()))
|
151 - | }
|
152 - | _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
|
153 - | "expected start object or null",
|
154 - | )),
|
155 - | }
|
156 - | }
|
157 - |
|
158 - | pub fn ser_kitchen_sink(
|
159 - | object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
|
160 - | input: &crate::types::KitchenSink,
|
161 - | ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
|
162 - | if let Some(var_1) = &input.blob {
|
163 - | object.key("Blob").string_unchecked(&::aws_smithy_types::base64::encode(var_1));
|
164 - | }
|
165 - | if let Some(var_2) = &input.boolean {
|
166 - | object.key("Boolean").boolean(*var_2);
|
167 - | }
|
168 - | if let Some(var_3) = &input.double {
|
169 - | object.key("Double").number(
|
170 - | #[allow(clippy::useless_conversion)]
|
171 - | ::aws_smithy_types::Number::Float((*var_3).into()),
|
172 - | );
|
173 - | }
|
174 - | if let Some(var_4) = &input.empty_struct {
|
175 - | #[allow(unused_mut)]
|
176 - | let mut object_5 = object.key("EmptyStruct").start_object();
|
177 - | crate::protocol_serde::shape_empty_struct::ser_empty_struct(&mut object_5, var_4)?;
|
178 - | object_5.finish();
|
179 - | }
|
180 - | if let Some(var_6) = &input.float {
|
181 - | object.key("Float").number(
|
182 - | #[allow(clippy::useless_conversion)]
|
183 - | ::aws_smithy_types::Number::Float((*var_6).into()),
|
184 - | );
|
185 - | }
|
186 - | if let Some(var_7) = &input.httpdate_timestamp {
|
187 - | object
|
188 - | .key("HttpdateTimestamp")
|
189 - | .date_time(var_7, ::aws_smithy_types::date_time::Format::HttpDate)?;
|
190 - | }
|
191 - | if let Some(var_8) = &input.integer {
|
192 - | object.key("Integer").number(
|
193 - | #[allow(clippy::useless_conversion)]
|
194 - | ::aws_smithy_types::Number::NegInt((*var_8).into()),
|
195 - | );
|
196 - | }
|
197 - | if let Some(var_9) = &input.iso8601_timestamp {
|
198 - | object
|
199 - | .key("Iso8601Timestamp")
|
200 - | .date_time(var_9, ::aws_smithy_types::date_time::Format::DateTime)?;
|
201 - | }
|
202 - | if let Some(var_10) = &input.json_value {
|
203 - | object.key("JsonValue").string(var_10.as_str());
|
204 - | }
|
205 - | if let Some(var_11) = &input.list_of_lists {
|
206 - | let mut array_12 = object.key("ListOfLists").start_array();
|
207 - | for item_13 in var_11 {
|
208 - | {
|
209 - | let mut array_14 = array_12.value().start_array();
|
210 - | for item_15 in item_13 {
|
211 - | {
|
212 - | array_14.value().string(item_15.as_str());
|
213 - | }
|
214 - | }
|
215 - | array_14.finish();
|
216 - | }
|
217 - | }
|
218 - | array_12.finish();
|
219 - | }
|
220 - | if let Some(var_16) = &input.list_of_maps_of_strings {
|
221 - | let mut array_17 = object.key("ListOfMapsOfStrings").start_array();
|
222 - | for item_18 in var_16 {
|
223 - | {
|
224 - | #[allow(unused_mut)]
|
225 - | let mut object_19 = array_17.value().start_object();
|
226 - | for (key_20, value_21) in item_18 {
|
227 - | {
|
228 - | object_19.key(key_20.as_str()).string(value_21.as_str());
|
229 - | }
|
230 - | }
|
231 - | object_19.finish();
|
232 - | }
|
233 - | }
|
234 - | array_17.finish();
|
235 - | }
|
236 - | if let Some(var_22) = &input.list_of_strings {
|
237 - | let mut array_23 = object.key("ListOfStrings").start_array();
|
238 - | for item_24 in var_22 {
|
239 - | {
|
240 - | array_23.value().string(item_24.as_str());
|
241 - | }
|
242 - | }
|
243 - | array_23.finish();
|
244 - | }
|
245 - | if let Some(var_25) = &input.list_of_structs {
|
246 - | let mut array_26 = object.key("ListOfStructs").start_array();
|
247 - | for item_27 in var_25 {
|
248 - | {
|
249 - | #[allow(unused_mut)]
|
250 - | let mut object_28 = array_26.value().start_object();
|
251 - | crate::protocol_serde::shape_simple_struct::ser_simple_struct(&mut object_28, item_27)?;
|
252 - | object_28.finish();
|
253 - | }
|
254 - | }
|
255 - | array_26.finish();
|
256 - | }
|
257 - | if let Some(var_29) = &input.long {
|
258 - | object.key("Long").number(
|
259 - | #[allow(clippy::useless_conversion)]
|
260 - | ::aws_smithy_types::Number::NegInt((*var_29).into()),
|
261 - | );
|
262 - | }
|
263 - | if let Some(var_30) = &input.map_of_lists_of_strings {
|
264 - | #[allow(unused_mut)]
|
265 - | let mut object_31 = object.key("MapOfListsOfStrings").start_object();
|
266 - | for (key_32, value_33) in var_30 {
|
267 - | {
|
268 - | let mut array_34 = object_31.key(key_32.as_str()).start_array();
|
269 - | for item_35 in value_33 {
|
270 - | {
|
271 - | array_34.value().string(item_35.as_str());
|
272 - | }
|
273 - | }
|
274 - | array_34.finish();
|
275 - | }
|
276 - | }
|
277 - | object_31.finish();
|
278 - | }
|
279 - | if let Some(var_36) = &input.map_of_maps {
|
280 - | #[allow(unused_mut)]
|
281 - | let mut object_37 = object.key("MapOfMaps").start_object();
|
282 - | for (key_38, value_39) in var_36 {
|
283 - | {
|
284 - | #[allow(unused_mut)]
|
285 - | let mut object_40 = object_37.key(key_38.as_str()).start_object();
|
286 - | for (key_41, value_42) in value_39 {
|
287 - | {
|
288 - | object_40.key(key_41.as_str()).string(value_42.as_str());
|
289 - | }
|
290 - | }
|
291 - | object_40.finish();
|
292 - | }
|
293 - | }
|
294 - | object_37.finish();
|
295 - | }
|
296 - | if let Some(var_43) = &input.map_of_strings {
|
297 - | #[allow(unused_mut)]
|
298 - | let mut object_44 = object.key("MapOfStrings").start_object();
|
299 - | for (key_45, value_46) in var_43 {
|
300 - | {
|
301 - | object_44.key(key_45.as_str()).string(value_46.as_str());
|
302 - | }
|
303 - | }
|
304 - | object_44.finish();
|
305 - | }
|
306 - | if let Some(var_47) = &input.map_of_structs {
|
307 - | #[allow(unused_mut)]
|
308 - | let mut object_48 = object.key("MapOfStructs").start_object();
|
309 - | for (key_49, value_50) in var_47 {
|
310 - | {
|
311 - | #[allow(unused_mut)]
|
312 - | let mut object_51 = object_48.key(key_49.as_str()).start_object();
|
313 - | crate::protocol_serde::shape_simple_struct::ser_simple_struct(&mut object_51, value_50)?;
|
314 - | object_51.finish();
|
315 - | }
|
316 - | }
|
317 - | object_48.finish();
|
318 - | }
|
319 - | if let Some(var_52) = &input.recursive_list {
|
320 - | let mut array_53 = object.key("RecursiveList").start_array();
|
321 - | for item_54 in var_52 {
|
322 - | {
|
323 - | #[allow(unused_mut)]
|
324 - | let mut object_55 = array_53.value().start_object();
|
325 - | crate::protocol_serde::shape_kitchen_sink::ser_kitchen_sink(&mut object_55, item_54)?;
|
326 - | object_55.finish();
|
327 - | }
|
328 - | }
|
329 - | array_53.finish();
|
330 - | }
|
331 - | if let Some(var_56) = &input.recursive_map {
|
332 - | #[allow(unused_mut)]
|
333 - | let mut object_57 = object.key("RecursiveMap").start_object();
|
334 - | for (key_58, value_59) in var_56 {
|
335 - | {
|
336 - | #[allow(unused_mut)]
|
337 - | let mut object_60 = object_57.key(key_58.as_str()).start_object();
|
338 - | crate::protocol_serde::shape_kitchen_sink::ser_kitchen_sink(&mut object_60, value_59)?;
|
339 - | object_60.finish();
|
340 - | }
|
341 - | }
|
342 - | object_57.finish();
|
343 - | }
|
344 - | if let Some(var_61) = &input.recursive_struct {
|
345 - | #[allow(unused_mut)]
|
346 - | let mut object_62 = object.key("RecursiveStruct").start_object();
|
347 - | crate::protocol_serde::shape_kitchen_sink::ser_kitchen_sink(&mut object_62, var_61)?;
|
348 - | object_62.finish();
|
349 - | }
|
350 - | if let Some(var_63) = &input.simple_struct {
|
351 - | #[allow(unused_mut)]
|
352 - | let mut object_64 = object.key("SimpleStruct").start_object();
|
353 - | crate::protocol_serde::shape_simple_struct::ser_simple_struct(&mut object_64, var_63)?;
|
354 - | object_64.finish();
|
355 - | }
|
356 - | if let Some(var_65) = &input.string {
|
357 - | object.key("String").string(var_65.as_str());
|
358 - | }
|
359 - | if let Some(var_66) = &input.struct_with_json_name {
|
360 - | #[allow(unused_mut)]
|
361 - | let mut object_67 = object.key("StructWithJsonName").start_object();
|
362 - | crate::protocol_serde::shape_struct_with_json_name::ser_struct_with_json_name(&mut object_67, var_66)?;
|
363 - | object_67.finish();
|
364 - | }
|
365 - | if let Some(var_68) = &input.timestamp {
|
366 - | object
|
367 - | .key("Timestamp")
|
368 - | .date_time(var_68, ::aws_smithy_types::date_time::Format::EpochSeconds)?;
|
369 - | }
|
370 - | if let Some(var_69) = &input.unix_timestamp {
|
371 - | object
|
372 - | .key("UnixTimestamp")
|
373 - | .date_time(var_69, ::aws_smithy_types::date_time::Format::EpochSeconds)?;
|
374 - | }
|
375 - | Ok(())
|
376 - | }
|