Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/protocol_serde/shape_json_unions.rs

@@ -1,1 +71,116 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::unnecessary_wraps)]
           4  +
/* ProtocolParserGenerator.kt:99 */
    3      5   
pub fn de_json_unions_http_error(
    4      6   
    _response_status: u16,
    5      7   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
    6      8   
    _response_body: &[u8],
    7      9   
) -> std::result::Result<crate::operation::json_unions::JsonUnionsOutput, crate::operation::json_unions::JsonUnionsError> {
          10  +
    /* RustType.kt:516 */
    8     11   
    #[allow(unused_mut)]
          12  +
    /* ProtocolParserGenerator.kt:106 */
    9     13   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   10     14   
        .map_err(crate::operation::json_unions::JsonUnionsError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:185 */
   12     18   
    Err(crate::operation::json_unions::JsonUnionsError::generic(generic))
          19  +
    /* ProtocolParserGenerator.kt:99 */
   13     20   
}
   14     21   
          22  +
/* RustType.kt:516 */
   15     23   
#[allow(clippy::unnecessary_wraps)]
          24  +
/* ProtocolParserGenerator.kt:71 */
   16     25   
pub fn de_json_unions_http_response(
   17     26   
    _response_status: u16,
   18     27   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   19     28   
    _response_body: &[u8],
   20     29   
) -> std::result::Result<crate::operation::json_unions::JsonUnionsOutput, crate::operation::json_unions::JsonUnionsError> {
          30  +
    /* ProtocolParserGenerator.kt:77 */
   21     31   
    Ok({
          32  +
        /* RustType.kt:516 */
   22     33   
        #[allow(unused_mut)]
          34  +
        /* ProtocolParserGenerator.kt:240 */
   23     35   
        let mut output = crate::operation::json_unions::builders::JsonUnionsOutputBuilder::default();
          36  +
        /* ProtocolParserGenerator.kt:247 */
   24     37   
        output = crate::protocol_serde::shape_json_unions::de_json_unions(_response_body, output)
   25     38   
            .map_err(crate::operation::json_unions::JsonUnionsError::unhandled)?;
          39  +
        /* ClientBuilderInstantiator.kt:56 */
   26     40   
        output.build()
          41  +
        /* ProtocolParserGenerator.kt:77 */
   27     42   
    })
          43  +
    /* ProtocolParserGenerator.kt:71 */
   28     44   
}
   29     45   
          46  +
/* JsonSerializerGenerator.kt:287 */
   30     47   
pub fn ser_json_unions_input(
   31     48   
    input: &crate::operation::json_unions::JsonUnionsInput,
   32     49   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          50  +
    /* JsonSerializerGenerator.kt:291 */
   33     51   
    let mut out = String::new();
          52  +
    /* JsonSerializerGenerator.kt:292 */
   34     53   
    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
          54  +
    /* JsonSerializerGenerator.kt:375 */
   35     55   
    crate::protocol_serde::shape_json_unions_input::ser_json_unions_input_input(&mut object, input)?;
          56  +
    /* JsonSerializerGenerator.kt:295 */
   36     57   
    object.finish();
          58  +
    /* JsonSerializerGenerator.kt:296 */
   37     59   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
          60  +
    /* JsonSerializerGenerator.kt:287 */
   38     61   
}
   39     62   
          63  +
/* JsonParserGenerator.kt:148 */
   40     64   
pub(crate) fn de_json_unions(
   41     65   
    value: &[u8],
   42     66   
    mut builder: crate::operation::json_unions::builders::JsonUnionsOutputBuilder,
   43     67   
) -> ::std::result::Result<crate::operation::json_unions::builders::JsonUnionsOutputBuilder, ::aws_smithy_json::deserialize::error::DeserializeError>
   44     68   
{
          69  +
    /* JsonParserGenerator.kt:153 */
   45     70   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
   46     71   
    let tokens = &mut tokens_owned;
   47     72   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
          73  +
    /* JsonParserGenerator.kt:684 */
   48     74   
    loop {
          75  +
        /* JsonParserGenerator.kt:685 */
   49     76   
        match tokens.next().transpose()? {
   50         -
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   51         -
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
          77  +
            /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          78  +
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          79  +
                /* JsonParserGenerator.kt:260 */
          80  +
                match key.to_unescaped()?.as_ref() {
          81  +
                    /* JsonParserGenerator.kt:262 */
   52     82   
                    "contents" => {
   53         -
                    builder = builder.set_contents(crate::protocol_serde::shape_my_union::de_my_union(tokens)?);
          83  +
                        /* JsonParserGenerator.kt:265 */
          84  +
                        builder = builder.set_contents(
          85  +
                            /* JsonParserGenerator.kt:660 */
          86  +
                            crate::protocol_serde::shape_my_union::de_my_union(tokens)?, /* JsonParserGenerator.kt:265 */
          87  +
                        );
          88  +
                        /* JsonParserGenerator.kt:262 */
   54     89   
                    }
   55         -
                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   56         -
            },
          90  +
                    /* JsonParserGenerator.kt:290 */
          91  +
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
          92  +
                }
          93  +
                /* JsonParserGenerator.kt:686 */
          94  +
            }
          95  +
            /* JsonParserGenerator.kt:695 */
   57     96   
            other => {
   58     97   
                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   59     98   
                    "expected object key or end object, found: {:?}",
   60     99   
                    other
   61    100   
                )))
         101  +
            } /* JsonParserGenerator.kt:685 */
   62    102   
        }
         103  +
        /* JsonParserGenerator.kt:684 */
   63    104   
    }
   64         -
    }
         105  +
    /* JsonParserGenerator.kt:250 */
   65    106   
    if tokens.next().is_some() {
         107  +
        /* JsonParserGenerator.kt:251 */
   66    108   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   67    109   
            "found more JSON tokens after completing parsing",
   68    110   
        ));
         111  +
        /* JsonParserGenerator.kt:250 */
   69    112   
    }
         113  +
    /* JsonParserGenerator.kt:163 */
   70    114   
    Ok(builder)
         115  +
    /* JsonParserGenerator.kt:148 */
   71    116   
}

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/protocol_serde/shape_json_unions_input.rs

@@ -1,1 +13,22 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
    2      3   
pub fn ser_json_unions_input_input(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::operation::json_unions::JsonUnionsInput,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.contents {
           9  +
        /* JsonSerializerGenerator.kt:495 */
    7     10   
        #[allow(unused_mut)]
          11  +
        /* JsonSerializerGenerator.kt:496 */
    8     12   
        let mut object_2 = object.key("contents").start_object();
          13  +
        /* JsonSerializerGenerator.kt:579 */
    9     14   
        crate::protocol_serde::shape_my_union::ser_my_union(&mut object_2, var_1)?;
          15  +
        /* JsonSerializerGenerator.kt:515 */
   10     16   
        object_2.finish();
          17  +
        /* JsonSerializerGenerator.kt:382 */
   11     18   
    }
          19  +
    /* JsonSerializerGenerator.kt:372 */
   12     20   
    Ok(())
          21  +
    /* JsonSerializerGenerator.kt:358 */
   13     22   
}

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/protocol_serde/shape_kitchen_sink.rs

@@ -1,1 +368,723 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:516 */
    2      3   
pub(crate) fn de_kitchen_sink<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<Option<crate::types::KitchenSink>, ::aws_smithy_json::deserialize::error::DeserializeError>
    5      6   
where
    6      7   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
    7      8   
{
           9  +
    /* JsonParserGenerator.kt:712 */
    8     10   
    match tokens.next().transpose()? {
    9         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          11  +
        /* JsonParserGenerator.kt:713 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   10     12   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          13  +
            /* RustType.kt:516 */
   11     14   
            #[allow(unused_mut)]
          15  +
            /* JsonParserGenerator.kt:526 */
   12     16   
            let mut builder = crate::types::builders::KitchenSinkBuilder::default();
          17  +
            /* JsonParserGenerator.kt:684 */
   13     18   
            loop {
          19  +
                /* JsonParserGenerator.kt:685 */
   14     20   
                match tokens.next().transpose()? {
   15         -
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   16         -
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
          21  +
                    /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          22  +
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          23  +
                        /* JsonParserGenerator.kt:260 */
          24  +
                        match key.to_unescaped()?.as_ref() {
          25  +
                            /* JsonParserGenerator.kt:262 */
   17     26   
                            "Blob" => {
   18         -
                            builder = builder.set_blob(::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?);
          27  +
                                /* JsonParserGenerator.kt:265 */
          28  +
                                builder = builder.set_blob(
          29  +
                                    /* JsonParserGenerator.kt:326 */
          30  +
                                    ::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?, /* JsonParserGenerator.kt:265 */
          31  +
                                );
          32  +
                                /* JsonParserGenerator.kt:262 */
   19     33   
                            }
          34  +
                            /* JsonParserGenerator.kt:262 */
   20     35   
                            "Boolean" => {
   21         -
                            builder = builder.set_boolean(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
          36  +
                                /* JsonParserGenerator.kt:265 */
          37  +
                                builder = builder.set_boolean(
          38  +
                                    /* JsonParserGenerator.kt:298 */
          39  +
                                    ::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?, /* JsonParserGenerator.kt:265 */
          40  +
                                );
          41  +
                                /* JsonParserGenerator.kt:262 */
   22     42   
                            }
          43  +
                            /* JsonParserGenerator.kt:262 */
   23     44   
                            "Double" => {
   24         -
                            builder = builder
   25         -
                                .set_double(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy()));
          45  +
                                /* JsonParserGenerator.kt:265 */
          46  +
                                builder = builder.set_double(
          47  +
                                    /* JsonParserGenerator.kt:363 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy())
          48  +
                                /* JsonParserGenerator.kt:265 */);
          49  +
                                /* JsonParserGenerator.kt:262 */
   26     50   
                            }
          51  +
                            /* JsonParserGenerator.kt:262 */
   27     52   
                            "EmptyStruct" => {
   28         -
                            builder = builder.set_empty_struct(crate::protocol_serde::shape_empty_struct::de_empty_struct(tokens)?);
          53  +
                                /* JsonParserGenerator.kt:265 */
          54  +
                                builder = builder.set_empty_struct(
          55  +
                                    /* JsonParserGenerator.kt:544 */
          56  +
                                    crate::protocol_serde::shape_empty_struct::de_empty_struct(tokens)?, /* JsonParserGenerator.kt:265 */
          57  +
                                );
          58  +
                                /* JsonParserGenerator.kt:262 */
   29     59   
                            }
          60  +
                            /* JsonParserGenerator.kt:262 */
   30     61   
                            "Float" => {
   31         -
                            builder = builder
   32         -
                                .set_float(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy()));
          62  +
                                /* JsonParserGenerator.kt:265 */
          63  +
                                builder = builder.set_float(
          64  +
                                    /* JsonParserGenerator.kt:361 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy())
          65  +
                                /* JsonParserGenerator.kt:265 */);
          66  +
                                /* JsonParserGenerator.kt:262 */
   33     67   
                            }
          68  +
                            /* JsonParserGenerator.kt:262 */
   34     69   
                            "HttpdateTimestamp" => {
   35         -
                            builder = builder.set_httpdate_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
          70  +
                                /* JsonParserGenerator.kt:265 */
          71  +
                                builder = builder.set_httpdate_timestamp(
          72  +
                                    /* JsonParserGenerator.kt:384 */
          73  +
                                    ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
   36     74   
                                        tokens.next(),
   37     75   
                                        ::aws_smithy_types::date_time::Format::HttpDate,
   38         -
                            )?);
          76  +
                                    )?, /* JsonParserGenerator.kt:265 */
          77  +
                                );
          78  +
                                /* JsonParserGenerator.kt:262 */
   39     79   
                            }
          80  +
                            /* JsonParserGenerator.kt:262 */
   40     81   
                            "Integer" => {
          82  +
                                /* JsonParserGenerator.kt:265 */
   41     83   
                                builder = builder.set_integer(
          84  +
                                    /* JsonParserGenerator.kt:365 */
   42     85   
                                    ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
   43     86   
                                        .map(i32::try_from)
   44         -
                                    .transpose()?,
          87  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
   45     88   
                                );
          89  +
                                /* JsonParserGenerator.kt:262 */
   46     90   
                            }
          91  +
                            /* JsonParserGenerator.kt:262 */
   47     92   
                            "Iso8601Timestamp" => {
   48         -
                            builder = builder.set_iso8601_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
          93  +
                                /* JsonParserGenerator.kt:265 */
          94  +
                                builder = builder.set_iso8601_timestamp(
          95  +
                                    /* JsonParserGenerator.kt:384 */
          96  +
                                    ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
   49     97   
                                        tokens.next(),
   50     98   
                                        ::aws_smithy_types::date_time::Format::DateTimeWithOffset,
   51         -
                            )?);
          99  +
                                    )?, /* JsonParserGenerator.kt:265 */
         100  +
                                );
         101  +
                                /* JsonParserGenerator.kt:262 */
   52    102   
                            }
         103  +
                            /* JsonParserGenerator.kt:262 */
   53    104   
                            "JsonValue" => {
         105  +
                                /* JsonParserGenerator.kt:265 */
   54    106   
                                builder = builder.set_json_value(
         107  +
                                    /* JsonParserGenerator.kt:354 */
   55    108   
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   56         -
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   57         -
                                    .transpose()?,
         109  +
                                        .map(|s|
         110  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         111  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
         112  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         113  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
   58    114   
                                );
         115  +
                                /* JsonParserGenerator.kt:262 */
   59    116   
                            }
         117  +
                            /* JsonParserGenerator.kt:262 */
   60    118   
                            "ListOfLists" => {
   61         -
                            builder =
   62         -
                                builder.set_list_of_lists(crate::protocol_serde::shape_list_of_list_of_strings::de_list_of_list_of_strings(tokens)?);
         119  +
                                /* JsonParserGenerator.kt:265 */
         120  +
                                builder = builder.set_list_of_lists(
         121  +
                                    /* JsonParserGenerator.kt:451 */crate::protocol_serde::shape_list_of_list_of_strings::de_list_of_list_of_strings(tokens)?
         122  +
                                /* JsonParserGenerator.kt:265 */);
         123  +
                                /* JsonParserGenerator.kt:262 */
   63    124   
                            }
         125  +
                            /* JsonParserGenerator.kt:262 */
   64    126   
                            "ListOfMapsOfStrings" => {
         127  +
                                /* JsonParserGenerator.kt:265 */
   65    128   
                                builder = builder.set_list_of_maps_of_strings(
   66         -
                                crate::protocol_serde::shape_list_of_maps_of_strings::de_list_of_maps_of_strings(tokens)?,
   67         -
                            );
         129  +
                                    /* JsonParserGenerator.kt:451 */crate::protocol_serde::shape_list_of_maps_of_strings::de_list_of_maps_of_strings(tokens)?
         130  +
                                /* JsonParserGenerator.kt:265 */);
         131  +
                                /* JsonParserGenerator.kt:262 */
   68    132   
                            }
         133  +
                            /* JsonParserGenerator.kt:262 */
   69    134   
                            "ListOfStrings" => {
   70         -
                            builder = builder.set_list_of_strings(crate::protocol_serde::shape_list_of_strings::de_list_of_strings(tokens)?);
         135  +
                                /* JsonParserGenerator.kt:265 */
         136  +
                                builder = builder.set_list_of_strings(
         137  +
                                    /* JsonParserGenerator.kt:451 */
         138  +
                                    crate::protocol_serde::shape_list_of_strings::de_list_of_strings(tokens)?, /* JsonParserGenerator.kt:265 */
         139  +
                                );
         140  +
                                /* JsonParserGenerator.kt:262 */
   71    141   
                            }
         142  +
                            /* JsonParserGenerator.kt:262 */
   72    143   
                            "ListOfStructs" => {
   73         -
                            builder = builder.set_list_of_structs(crate::protocol_serde::shape_list_of_structs::de_list_of_structs(tokens)?);
         144  +
                                /* JsonParserGenerator.kt:265 */
         145  +
                                builder = builder.set_list_of_structs(
         146  +
                                    /* JsonParserGenerator.kt:451 */
         147  +
                                    crate::protocol_serde::shape_list_of_structs::de_list_of_structs(tokens)?, /* JsonParserGenerator.kt:265 */
         148  +
                                );
         149  +
                                /* JsonParserGenerator.kt:262 */
   74    150   
                            }
         151  +
                            /* JsonParserGenerator.kt:262 */
   75    152   
                            "Long" => {
         153  +
                                /* JsonParserGenerator.kt:265 */
   76    154   
                                builder = builder.set_long(
         155  +
                                    /* JsonParserGenerator.kt:365 */
   77    156   
                                    ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
   78    157   
                                        .map(i64::try_from)
   79         -
                                    .transpose()?,
         158  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
   80    159   
                                );
         160  +
                                /* JsonParserGenerator.kt:262 */
   81    161   
                            }
         162  +
                            /* JsonParserGenerator.kt:262 */
   82    163   
                            "MapOfListsOfStrings" => {
         164  +
                                /* JsonParserGenerator.kt:265 */
   83    165   
                                builder = builder.set_map_of_lists_of_strings(
   84         -
                                crate::protocol_serde::shape_map_of_lists_of_strings::de_map_of_lists_of_strings(tokens)?,
   85         -
                            );
         166  +
                                    /* JsonParserGenerator.kt:509 */crate::protocol_serde::shape_map_of_lists_of_strings::de_map_of_lists_of_strings(tokens)?
         167  +
                                /* JsonParserGenerator.kt:265 */);
         168  +
                                /* JsonParserGenerator.kt:262 */
   86    169   
                            }
         170  +
                            /* JsonParserGenerator.kt:262 */
   87    171   
                            "MapOfMaps" => {
   88         -
                            builder = builder.set_map_of_maps(crate::protocol_serde::shape_map_of_map_of_strings::de_map_of_map_of_strings(tokens)?);
         172  +
                                /* JsonParserGenerator.kt:265 */
         173  +
                                builder = builder.set_map_of_maps(
         174  +
                                    /* JsonParserGenerator.kt:509 */crate::protocol_serde::shape_map_of_map_of_strings::de_map_of_map_of_strings(tokens)?
         175  +
                                /* JsonParserGenerator.kt:265 */);
         176  +
                                /* JsonParserGenerator.kt:262 */
   89    177   
                            }
         178  +
                            /* JsonParserGenerator.kt:262 */
   90    179   
                            "MapOfStrings" => {
   91         -
                            builder = builder.set_map_of_strings(crate::protocol_serde::shape_map_of_strings::de_map_of_strings(tokens)?);
         180  +
                                /* JsonParserGenerator.kt:265 */
         181  +
                                builder = builder.set_map_of_strings(
         182  +
                                    /* JsonParserGenerator.kt:509 */
         183  +
                                    crate::protocol_serde::shape_map_of_strings::de_map_of_strings(tokens)?, /* JsonParserGenerator.kt:265 */
         184  +
                                );
         185  +
                                /* JsonParserGenerator.kt:262 */
   92    186   
                            }
         187  +
                            /* JsonParserGenerator.kt:262 */
   93    188   
                            "MapOfStructs" => {
   94         -
                            builder = builder.set_map_of_structs(crate::protocol_serde::shape_map_of_structs::de_map_of_structs(tokens)?);
         189  +
                                /* JsonParserGenerator.kt:265 */
         190  +
                                builder = builder.set_map_of_structs(
         191  +
                                    /* JsonParserGenerator.kt:509 */
         192  +
                                    crate::protocol_serde::shape_map_of_structs::de_map_of_structs(tokens)?, /* JsonParserGenerator.kt:265 */
         193  +
                                );
         194  +
                                /* JsonParserGenerator.kt:262 */
   95    195   
                            }
         196  +
                            /* JsonParserGenerator.kt:262 */
   96    197   
                            "RecursiveList" => {
   97         -
                            builder =
   98         -
                                builder.set_recursive_list(crate::protocol_serde::shape_list_of_kitchen_sinks::de_list_of_kitchen_sinks(tokens)?);
         198  +
                                /* JsonParserGenerator.kt:265 */
         199  +
                                builder = builder.set_recursive_list(
         200  +
                                    /* JsonParserGenerator.kt:451 */crate::protocol_serde::shape_list_of_kitchen_sinks::de_list_of_kitchen_sinks(tokens)?
         201  +
                                /* JsonParserGenerator.kt:265 */);
         202  +
                                /* JsonParserGenerator.kt:262 */
   99    203   
                            }
         204  +
                            /* JsonParserGenerator.kt:262 */
  100    205   
                            "RecursiveMap" => {
  101         -
                            builder = builder.set_recursive_map(crate::protocol_serde::shape_map_of_kitchen_sinks::de_map_of_kitchen_sinks(tokens)?);
         206  +
                                /* JsonParserGenerator.kt:265 */
         207  +
                                builder = builder.set_recursive_map(
         208  +
                                    /* JsonParserGenerator.kt:509 */crate::protocol_serde::shape_map_of_kitchen_sinks::de_map_of_kitchen_sinks(tokens)?
         209  +
                                /* JsonParserGenerator.kt:265 */);
         210  +
                                /* JsonParserGenerator.kt:262 */
  102    211   
                            }
         212  +
                            /* JsonParserGenerator.kt:262 */
  103    213   
                            "RecursiveStruct" => {
  104         -
                            builder = builder.set_recursive_struct(crate::protocol_serde::shape_kitchen_sink::de_kitchen_sink(tokens)?.map(Box::new));
         214  +
                                /* JsonParserGenerator.kt:265 */
         215  +
                                builder = builder.set_recursive_struct(
         216  +
                                    /* JsonParserGenerator.kt:544 */
         217  +
                                    crate::protocol_serde::shape_kitchen_sink::de_kitchen_sink(tokens)?
         218  +
                                        /* JsonParserGenerator.kt:314 */
         219  +
                                        .map(Box::new), /* JsonParserGenerator.kt:265 */
         220  +
                                );
         221  +
                                /* JsonParserGenerator.kt:262 */
  105    222   
                            }
         223  +
                            /* JsonParserGenerator.kt:262 */
  106    224   
                            "SimpleStruct" => {
  107         -
                            builder = builder.set_simple_struct(crate::protocol_serde::shape_simple_struct::de_simple_struct(tokens)?);
         225  +
                                /* JsonParserGenerator.kt:265 */
         226  +
                                builder = builder.set_simple_struct(
         227  +
                                    /* JsonParserGenerator.kt:544 */
         228  +
                                    crate::protocol_serde::shape_simple_struct::de_simple_struct(tokens)?, /* JsonParserGenerator.kt:265 */
         229  +
                                );
         230  +
                                /* JsonParserGenerator.kt:262 */
  108    231   
                            }
         232  +
                            /* JsonParserGenerator.kt:262 */
  109    233   
                            "String" => {
         234  +
                                /* JsonParserGenerator.kt:265 */
  110    235   
                                builder = builder.set_string(
         236  +
                                    /* JsonParserGenerator.kt:354 */
  111    237   
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  112         -
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
  113         -
                                    .transpose()?,
         238  +
                                        .map(|s|
         239  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         240  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
         241  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         242  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
  114    243   
                                );
         244  +
                                /* JsonParserGenerator.kt:262 */
  115    245   
                            }
         246  +
                            /* JsonParserGenerator.kt:262 */
  116    247   
                            "StructWithJsonName" => {
  117         -
                            builder = builder
  118         -
                                .set_struct_with_json_name(crate::protocol_serde::shape_struct_with_json_name::de_struct_with_json_name(tokens)?);
         248  +
                                /* JsonParserGenerator.kt:265 */
         249  +
                                builder = builder.set_struct_with_json_name(
         250  +
                                    /* JsonParserGenerator.kt:544 */crate::protocol_serde::shape_struct_with_json_name::de_struct_with_json_name(tokens)?
         251  +
                                /* JsonParserGenerator.kt:265 */);
         252  +
                                /* JsonParserGenerator.kt:262 */
  119    253   
                            }
         254  +
                            /* JsonParserGenerator.kt:262 */
  120    255   
                            "Timestamp" => {
  121         -
                            builder = builder.set_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
         256  +
                                /* JsonParserGenerator.kt:265 */
         257  +
                                builder = builder.set_timestamp(
         258  +
                                    /* JsonParserGenerator.kt:384 */
         259  +
                                    ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
  122    260   
                                        tokens.next(),
  123    261   
                                        ::aws_smithy_types::date_time::Format::EpochSeconds,
  124         -
                            )?);
         262  +
                                    )?, /* JsonParserGenerator.kt:265 */
         263  +
                                );
         264  +
                                /* JsonParserGenerator.kt:262 */
  125    265   
                            }
         266  +
                            /* JsonParserGenerator.kt:262 */
  126    267   
                            "UnixTimestamp" => {
  127         -
                            builder = builder.set_unix_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
         268  +
                                /* JsonParserGenerator.kt:265 */
         269  +
                                builder = builder.set_unix_timestamp(
         270  +
                                    /* JsonParserGenerator.kt:384 */
         271  +
                                    ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
  128    272   
                                        tokens.next(),
  129    273   
                                        ::aws_smithy_types::date_time::Format::EpochSeconds,
  130         -
                            )?);
         274  +
                                    )?, /* JsonParserGenerator.kt:265 */
         275  +
                                );
         276  +
                                /* JsonParserGenerator.kt:262 */
         277  +
                            }
         278  +
                            /* JsonParserGenerator.kt:290 */
         279  +
                            _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
  131    280   
                        }
  132         -
                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
  133         -
                    },
         281  +
                        /* JsonParserGenerator.kt:686 */
         282  +
                    }
         283  +
                    /* JsonParserGenerator.kt:695 */
  134    284   
                    other => {
  135    285   
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  136    286   
                            "expected object key or end object, found: {:?}",
  137    287   
                            other
  138    288   
                        )))
         289  +
                    } /* JsonParserGenerator.kt:685 */
  139    290   
                }
         291  +
                /* JsonParserGenerator.kt:684 */
  140    292   
            }
  141         -
            }
         293  +
            /* JsonParserGenerator.kt:540 */
  142    294   
            Ok(Some(builder.build()))
         295  +
            /* JsonParserGenerator.kt:713 */
  143    296   
        }
  144         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
         297  +
        /* JsonParserGenerator.kt:722 */
         298  +
        _ => {
         299  +
            /* JsonParserGenerator.kt:723 */
         300  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
  145    301   
                "expected start object or null",
  146         -
        )),
         302  +
            ))
         303  +
            /* JsonParserGenerator.kt:722 */
         304  +
        } /* JsonParserGenerator.kt:712 */
  147    305   
    }
         306  +
    /* JsonParserGenerator.kt:516 */
  148    307   
}
  149    308   
         309  +
/* JsonSerializerGenerator.kt:358 */
  150    310   
pub fn ser_kitchen_sink(
  151    311   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
  152    312   
    input: &crate::types::KitchenSink,
  153    313   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
         314  +
    /* JsonSerializerGenerator.kt:382 */
  154    315   
    if let Some(var_1) = &input.blob {
         316  +
        /* JsonSerializerGenerator.kt:439 */
  155    317   
        object.key("Blob").string_unchecked(&::aws_smithy_types::base64::encode(var_1));
         318  +
        /* JsonSerializerGenerator.kt:382 */
  156    319   
    }
         320  +
    /* JsonSerializerGenerator.kt:382 */
  157    321   
    if let Some(var_2) = &input.boolean {
         322  +
        /* JsonSerializerGenerator.kt:424 */
  158    323   
        object.key("Boolean").boolean(*var_2);
         324  +
        /* JsonSerializerGenerator.kt:382 */
  159    325   
    }
         326  +
    /* JsonSerializerGenerator.kt:382 */
  160    327   
    if let Some(var_3) = &input.double {
         328  +
        /* JsonSerializerGenerator.kt:432 */
  161    329   
        object.key("Double").number(
  162    330   
            #[allow(clippy::useless_conversion)]
  163    331   
            ::aws_smithy_types::Number::Float((*var_3).into()),
  164    332   
        );
         333  +
        /* JsonSerializerGenerator.kt:382 */
  165    334   
    }
         335  +
    /* JsonSerializerGenerator.kt:382 */
  166    336   
    if let Some(var_4) = &input.empty_struct {
         337  +
        /* JsonSerializerGenerator.kt:495 */
  167    338   
        #[allow(unused_mut)]
         339  +
        /* JsonSerializerGenerator.kt:496 */
  168    340   
        let mut object_5 = object.key("EmptyStruct").start_object();
         341  +
        /* JsonSerializerGenerator.kt:375 */
  169    342   
        crate::protocol_serde::shape_empty_struct::ser_empty_struct(&mut object_5, var_4)?;
         343  +
        /* JsonSerializerGenerator.kt:515 */
  170    344   
        object_5.finish();
         345  +
        /* JsonSerializerGenerator.kt:382 */
  171    346   
    }
         347  +
    /* JsonSerializerGenerator.kt:382 */
  172    348   
    if let Some(var_6) = &input.float {
         349  +
        /* JsonSerializerGenerator.kt:432 */
  173    350   
        object.key("Float").number(
  174    351   
            #[allow(clippy::useless_conversion)]
  175    352   
            ::aws_smithy_types::Number::Float((*var_6).into()),
  176    353   
        );
         354  +
        /* JsonSerializerGenerator.kt:382 */
  177    355   
    }
         356  +
    /* JsonSerializerGenerator.kt:382 */
  178    357   
    if let Some(var_7) = &input.httpdate_timestamp {
         358  +
        /* JsonSerializerGenerator.kt:448 */
  179    359   
        object
  180    360   
            .key("HttpdateTimestamp")
  181    361   
            .date_time(var_7, ::aws_smithy_types::date_time::Format::HttpDate)?;
         362  +
        /* JsonSerializerGenerator.kt:382 */
  182    363   
    }
         364  +
    /* JsonSerializerGenerator.kt:382 */
  183    365   
    if let Some(var_8) = &input.integer {
         366  +
        /* JsonSerializerGenerator.kt:432 */
  184    367   
        object.key("Integer").number(
  185    368   
            #[allow(clippy::useless_conversion)]
  186    369   
            ::aws_smithy_types::Number::NegInt((*var_8).into()),
  187    370   
        );
         371  +
        /* JsonSerializerGenerator.kt:382 */
  188    372   
    }
         373  +
    /* JsonSerializerGenerator.kt:382 */
  189    374   
    if let Some(var_9) = &input.iso8601_timestamp {
         375  +
        /* JsonSerializerGenerator.kt:448 */
  190    376   
        object
  191    377   
            .key("Iso8601Timestamp")
  192    378   
            .date_time(var_9, ::aws_smithy_types::date_time::Format::DateTime)?;
         379  +
        /* JsonSerializerGenerator.kt:382 */
  193    380   
    }
         381  +
    /* JsonSerializerGenerator.kt:382 */
  194    382   
    if let Some(var_10) = &input.json_value {
         383  +
        /* JsonSerializerGenerator.kt:423 */
  195    384   
        object.key("JsonValue").string(var_10.as_str());
         385  +
        /* JsonSerializerGenerator.kt:382 */
  196    386   
    }
         387  +
    /* JsonSerializerGenerator.kt:382 */
  197    388   
    if let Some(var_11) = &input.list_of_lists {
         389  +
        /* JsonSerializerGenerator.kt:484 */
  198    390   
        let mut array_12 = object.key("ListOfLists").start_array();
         391  +
        /* JsonSerializerGenerator.kt:524 */
  199    392   
        for item_13 in var_11 {
         393  +
            /* SerializerUtil.kt:42 */
  200    394   
            {
         395  +
                /* JsonSerializerGenerator.kt:484 */
  201    396   
                let mut array_14 = array_12.value().start_array();
         397  +
                /* JsonSerializerGenerator.kt:524 */
  202    398   
                for item_15 in item_13 {
         399  +
                    /* SerializerUtil.kt:42 */
  203    400   
                    {
         401  +
                        /* JsonSerializerGenerator.kt:423 */
  204    402   
                        array_14.value().string(item_15.as_str());
         403  +
                        /* SerializerUtil.kt:42 */
  205    404   
                    }
         405  +
                    /* JsonSerializerGenerator.kt:524 */
  206    406   
                }
         407  +
                /* JsonSerializerGenerator.kt:486 */
  207    408   
                array_14.finish();
         409  +
                /* SerializerUtil.kt:42 */
  208    410   
            }
         411  +
            /* JsonSerializerGenerator.kt:524 */
  209    412   
        }
         413  +
        /* JsonSerializerGenerator.kt:486 */
  210    414   
        array_12.finish();
         415  +
        /* JsonSerializerGenerator.kt:382 */
  211    416   
    }
         417  +
    /* JsonSerializerGenerator.kt:382 */
  212    418   
    if let Some(var_16) = &input.list_of_maps_of_strings {
         419  +
        /* JsonSerializerGenerator.kt:484 */
  213    420   
        let mut array_17 = object.key("ListOfMapsOfStrings").start_array();
         421  +
        /* JsonSerializerGenerator.kt:524 */
  214    422   
        for item_18 in var_16 {
         423  +
            /* SerializerUtil.kt:42 */
  215    424   
            {
         425  +
                /* JsonSerializerGenerator.kt:495 */
  216    426   
                #[allow(unused_mut)]
         427  +
                /* JsonSerializerGenerator.kt:496 */
  217    428   
                let mut object_19 = array_17.value().start_object();
         429  +
                /* JsonSerializerGenerator.kt:537 */
  218    430   
                for (key_20, value_21) in item_18 {
         431  +
                    /* SerializerUtil.kt:42 */
  219    432   
                    {
         433  +
                        /* JsonSerializerGenerator.kt:423 */
  220    434   
                        object_19.key(key_20.as_str()).string(value_21.as_str());
         435  +
                        /* SerializerUtil.kt:42 */
  221    436   
                    }
         437  +
                    /* JsonSerializerGenerator.kt:537 */
  222    438   
                }
         439  +
                /* JsonSerializerGenerator.kt:515 */
  223    440   
                object_19.finish();
         441  +
                /* SerializerUtil.kt:42 */
  224    442   
            }
         443  +
            /* JsonSerializerGenerator.kt:524 */
  225    444   
        }
         445  +
        /* JsonSerializerGenerator.kt:486 */
  226    446   
        array_17.finish();
         447  +
        /* JsonSerializerGenerator.kt:382 */
  227    448   
    }
         449  +
    /* JsonSerializerGenerator.kt:382 */
  228    450   
    if let Some(var_22) = &input.list_of_strings {
         451  +
        /* JsonSerializerGenerator.kt:484 */
  229    452   
        let mut array_23 = object.key("ListOfStrings").start_array();
         453  +
        /* JsonSerializerGenerator.kt:524 */
  230    454   
        for item_24 in var_22 {
         455  +
            /* SerializerUtil.kt:42 */
  231    456   
            {
         457  +
                /* JsonSerializerGenerator.kt:423 */
  232    458   
                array_23.value().string(item_24.as_str());
         459  +
                /* SerializerUtil.kt:42 */
  233    460   
            }
         461  +
            /* JsonSerializerGenerator.kt:524 */
  234    462   
        }
         463  +
        /* JsonSerializerGenerator.kt:486 */
  235    464   
        array_23.finish();
         465  +
        /* JsonSerializerGenerator.kt:382 */
  236    466   
    }
         467  +
    /* JsonSerializerGenerator.kt:382 */
  237    468   
    if let Some(var_25) = &input.list_of_structs {
         469  +
        /* JsonSerializerGenerator.kt:484 */
  238    470   
        let mut array_26 = object.key("ListOfStructs").start_array();
         471  +
        /* JsonSerializerGenerator.kt:524 */
  239    472   
        for item_27 in var_25 {
         473  +
            /* SerializerUtil.kt:42 */
  240    474   
            {
         475  +
                /* JsonSerializerGenerator.kt:495 */
  241    476   
                #[allow(unused_mut)]
         477  +
                /* JsonSerializerGenerator.kt:496 */
  242    478   
                let mut object_28 = array_26.value().start_object();
         479  +
                /* JsonSerializerGenerator.kt:375 */
  243    480   
                crate::protocol_serde::shape_simple_struct::ser_simple_struct(&mut object_28, item_27)?;
         481  +
                /* JsonSerializerGenerator.kt:515 */
  244    482   
                object_28.finish();
         483  +
                /* SerializerUtil.kt:42 */
  245    484   
            }
         485  +
            /* JsonSerializerGenerator.kt:524 */
  246    486   
        }
         487  +
        /* JsonSerializerGenerator.kt:486 */
  247    488   
        array_26.finish();
         489  +
        /* JsonSerializerGenerator.kt:382 */
  248    490   
    }
         491  +
    /* JsonSerializerGenerator.kt:382 */
  249    492   
    if let Some(var_29) = &input.long {
         493  +
        /* JsonSerializerGenerator.kt:432 */
  250    494   
        object.key("Long").number(
  251    495   
            #[allow(clippy::useless_conversion)]
  252    496   
            ::aws_smithy_types::Number::NegInt((*var_29).into()),
  253    497   
        );
         498  +
        /* JsonSerializerGenerator.kt:382 */
  254    499   
    }
         500  +
    /* JsonSerializerGenerator.kt:382 */
  255    501   
    if let Some(var_30) = &input.map_of_lists_of_strings {
         502  +
        /* JsonSerializerGenerator.kt:495 */
  256    503   
        #[allow(unused_mut)]
         504  +
        /* JsonSerializerGenerator.kt:496 */
  257    505   
        let mut object_31 = object.key("MapOfListsOfStrings").start_object();
         506  +
        /* JsonSerializerGenerator.kt:537 */
  258    507   
        for (key_32, value_33) in var_30 {
         508  +
            /* SerializerUtil.kt:42 */
  259    509   
            {
         510  +
                /* JsonSerializerGenerator.kt:484 */
  260    511   
                let mut array_34 = object_31.key(key_32.as_str()).start_array();
         512  +
                /* JsonSerializerGenerator.kt:524 */
  261    513   
                for item_35 in value_33 {
         514  +
                    /* SerializerUtil.kt:42 */
  262    515   
                    {
         516  +
                        /* JsonSerializerGenerator.kt:423 */
  263    517   
                        array_34.value().string(item_35.as_str());
         518  +
                        /* SerializerUtil.kt:42 */
  264    519   
                    }
         520  +
                    /* JsonSerializerGenerator.kt:524 */
  265    521   
                }
         522  +
                /* JsonSerializerGenerator.kt:486 */
  266    523   
                array_34.finish();
         524  +
                /* SerializerUtil.kt:42 */
  267    525   
            }
         526  +
            /* JsonSerializerGenerator.kt:537 */
  268    527   
        }
         528  +
        /* JsonSerializerGenerator.kt:515 */
  269    529   
        object_31.finish();
         530  +
        /* JsonSerializerGenerator.kt:382 */
  270    531   
    }
         532  +
    /* JsonSerializerGenerator.kt:382 */
  271    533   
    if let Some(var_36) = &input.map_of_maps {
         534  +
        /* JsonSerializerGenerator.kt:495 */
  272    535   
        #[allow(unused_mut)]
         536  +
        /* JsonSerializerGenerator.kt:496 */
  273    537   
        let mut object_37 = object.key("MapOfMaps").start_object();
         538  +
        /* JsonSerializerGenerator.kt:537 */
  274    539   
        for (key_38, value_39) in var_36 {
         540  +
            /* SerializerUtil.kt:42 */
  275    541   
            {
         542  +
                /* JsonSerializerGenerator.kt:495 */
  276    543   
                #[allow(unused_mut)]
         544  +
                /* JsonSerializerGenerator.kt:496 */
  277    545   
                let mut object_40 = object_37.key(key_38.as_str()).start_object();
         546  +
                /* JsonSerializerGenerator.kt:537 */
  278    547   
                for (key_41, value_42) in value_39 {
         548  +
                    /* SerializerUtil.kt:42 */
  279    549   
                    {
         550  +
                        /* JsonSerializerGenerator.kt:423 */
  280    551   
                        object_40.key(key_41.as_str()).string(value_42.as_str());
         552  +
                        /* SerializerUtil.kt:42 */
  281    553   
                    }
         554  +
                    /* JsonSerializerGenerator.kt:537 */
  282    555   
                }
         556  +
                /* JsonSerializerGenerator.kt:515 */
  283    557   
                object_40.finish();
         558  +
                /* SerializerUtil.kt:42 */
  284    559   
            }
         560  +
            /* JsonSerializerGenerator.kt:537 */
  285    561   
        }
         562  +
        /* JsonSerializerGenerator.kt:515 */
  286    563   
        object_37.finish();
         564  +
        /* JsonSerializerGenerator.kt:382 */
  287    565   
    }
         566  +
    /* JsonSerializerGenerator.kt:382 */
  288    567   
    if let Some(var_43) = &input.map_of_strings {
         568  +
        /* JsonSerializerGenerator.kt:495 */
  289    569   
        #[allow(unused_mut)]
         570  +
        /* JsonSerializerGenerator.kt:496 */
  290    571   
        let mut object_44 = object.key("MapOfStrings").start_object();
         572  +
        /* JsonSerializerGenerator.kt:537 */
  291    573   
        for (key_45, value_46) in var_43 {
         574  +
            /* SerializerUtil.kt:42 */
  292    575   
            {
         576  +
                /* JsonSerializerGenerator.kt:423 */
  293    577   
                object_44.key(key_45.as_str()).string(value_46.as_str());
         578  +
                /* SerializerUtil.kt:42 */
  294    579   
            }
         580  +
            /* JsonSerializerGenerator.kt:537 */
  295    581   
        }
         582  +
        /* JsonSerializerGenerator.kt:515 */
  296    583   
        object_44.finish();
         584  +
        /* JsonSerializerGenerator.kt:382 */
  297    585   
    }
         586  +
    /* JsonSerializerGenerator.kt:382 */
  298    587   
    if let Some(var_47) = &input.map_of_structs {
         588  +
        /* JsonSerializerGenerator.kt:495 */
  299    589   
        #[allow(unused_mut)]
         590  +
        /* JsonSerializerGenerator.kt:496 */
  300    591   
        let mut object_48 = object.key("MapOfStructs").start_object();
         592  +
        /* JsonSerializerGenerator.kt:537 */
  301    593   
        for (key_49, value_50) in var_47 {
         594  +
            /* SerializerUtil.kt:42 */
  302    595   
            {
         596  +
                /* JsonSerializerGenerator.kt:495 */
  303    597   
                #[allow(unused_mut)]
         598  +
                /* JsonSerializerGenerator.kt:496 */
  304    599   
                let mut object_51 = object_48.key(key_49.as_str()).start_object();
         600  +
                /* JsonSerializerGenerator.kt:375 */
  305    601   
                crate::protocol_serde::shape_simple_struct::ser_simple_struct(&mut object_51, value_50)?;
         602  +
                /* JsonSerializerGenerator.kt:515 */
  306    603   
                object_51.finish();
         604  +
                /* SerializerUtil.kt:42 */
  307    605   
            }
         606  +
            /* JsonSerializerGenerator.kt:537 */
  308    607   
        }
         608  +
        /* JsonSerializerGenerator.kt:515 */
  309    609   
        object_48.finish();
         610  +
        /* JsonSerializerGenerator.kt:382 */
  310    611   
    }
         612  +
    /* JsonSerializerGenerator.kt:382 */
  311    613   
    if let Some(var_52) = &input.recursive_list {
         614  +
        /* JsonSerializerGenerator.kt:484 */
  312    615   
        let mut array_53 = object.key("RecursiveList").start_array();
         616  +
        /* JsonSerializerGenerator.kt:524 */
  313    617   
        for item_54 in var_52 {
         618  +
            /* SerializerUtil.kt:42 */
  314    619   
            {
         620  +
                /* JsonSerializerGenerator.kt:495 */
  315    621   
                #[allow(unused_mut)]
         622  +
                /* JsonSerializerGenerator.kt:496 */
  316    623   
                let mut object_55 = array_53.value().start_object();
         624  +
                /* JsonSerializerGenerator.kt:375 */
  317    625   
                crate::protocol_serde::shape_kitchen_sink::ser_kitchen_sink(&mut object_55, item_54)?;
         626  +
                /* JsonSerializerGenerator.kt:515 */
  318    627   
                object_55.finish();
         628  +
                /* SerializerUtil.kt:42 */
  319    629   
            }
         630  +
            /* JsonSerializerGenerator.kt:524 */
  320    631   
        }
         632  +
        /* JsonSerializerGenerator.kt:486 */
  321    633   
        array_53.finish();
         634  +
        /* JsonSerializerGenerator.kt:382 */
  322    635   
    }
         636  +
    /* JsonSerializerGenerator.kt:382 */
  323    637   
    if let Some(var_56) = &input.recursive_map {
         638  +
        /* JsonSerializerGenerator.kt:495 */
  324    639   
        #[allow(unused_mut)]
         640  +
        /* JsonSerializerGenerator.kt:496 */
  325    641   
        let mut object_57 = object.key("RecursiveMap").start_object();
         642  +
        /* JsonSerializerGenerator.kt:537 */
  326    643   
        for (key_58, value_59) in var_56 {
         644  +
            /* SerializerUtil.kt:42 */
  327    645   
            {
         646  +
                /* JsonSerializerGenerator.kt:495 */
  328    647   
                #[allow(unused_mut)]
         648  +
                /* JsonSerializerGenerator.kt:496 */
  329    649   
                let mut object_60 = object_57.key(key_58.as_str()).start_object();
         650  +
                /* JsonSerializerGenerator.kt:375 */
  330    651   
                crate::protocol_serde::shape_kitchen_sink::ser_kitchen_sink(&mut object_60, value_59)?;
         652  +
                /* JsonSerializerGenerator.kt:515 */
  331    653   
                object_60.finish();
         654  +
                /* SerializerUtil.kt:42 */
  332    655   
            }
         656  +
            /* JsonSerializerGenerator.kt:537 */
  333    657   
        }
         658  +
        /* JsonSerializerGenerator.kt:515 */
  334    659   
        object_57.finish();
         660  +
        /* JsonSerializerGenerator.kt:382 */
  335    661   
    }
         662  +
    /* JsonSerializerGenerator.kt:382 */
  336    663   
    if let Some(var_61) = &input.recursive_struct {
         664  +
        /* JsonSerializerGenerator.kt:495 */
  337    665   
        #[allow(unused_mut)]
         666  +
        /* JsonSerializerGenerator.kt:496 */
  338    667   
        let mut object_62 = object.key("RecursiveStruct").start_object();
         668  +
        /* JsonSerializerGenerator.kt:375 */
  339    669   
        crate::protocol_serde::shape_kitchen_sink::ser_kitchen_sink(&mut object_62, var_61)?;
         670  +
        /* JsonSerializerGenerator.kt:515 */
  340    671   
        object_62.finish();
         672  +
        /* JsonSerializerGenerator.kt:382 */
  341    673   
    }
         674  +
    /* JsonSerializerGenerator.kt:382 */
  342    675   
    if let Some(var_63) = &input.simple_struct {
         676  +
        /* JsonSerializerGenerator.kt:495 */
  343    677   
        #[allow(unused_mut)]
         678  +
        /* JsonSerializerGenerator.kt:496 */
  344    679   
        let mut object_64 = object.key("SimpleStruct").start_object();
         680  +
        /* JsonSerializerGenerator.kt:375 */
  345    681   
        crate::protocol_serde::shape_simple_struct::ser_simple_struct(&mut object_64, var_63)?;
         682  +
        /* JsonSerializerGenerator.kt:515 */
  346    683   
        object_64.finish();
         684  +
        /* JsonSerializerGenerator.kt:382 */
  347    685   
    }
         686  +
    /* JsonSerializerGenerator.kt:382 */
  348    687   
    if let Some(var_65) = &input.string {
         688  +
        /* JsonSerializerGenerator.kt:423 */
  349    689   
        object.key("String").string(var_65.as_str());
         690  +
        /* JsonSerializerGenerator.kt:382 */
  350    691   
    }
         692  +
    /* JsonSerializerGenerator.kt:382 */
  351    693   
    if let Some(var_66) = &input.struct_with_json_name {
         694  +
        /* JsonSerializerGenerator.kt:495 */
  352    695   
        #[allow(unused_mut)]
         696  +
        /* JsonSerializerGenerator.kt:496 */
  353    697   
        let mut object_67 = object.key("StructWithJsonName").start_object();
         698  +
        /* JsonSerializerGenerator.kt:375 */
  354    699   
        crate::protocol_serde::shape_struct_with_json_name::ser_struct_with_json_name(&mut object_67, var_66)?;
         700  +
        /* JsonSerializerGenerator.kt:515 */
  355    701   
        object_67.finish();
         702  +
        /* JsonSerializerGenerator.kt:382 */
  356    703   
    }
         704  +
    /* JsonSerializerGenerator.kt:382 */
  357    705   
    if let Some(var_68) = &input.timestamp {
         706  +
        /* JsonSerializerGenerator.kt:448 */
  358    707   
        object
  359    708   
            .key("Timestamp")
  360    709   
            .date_time(var_68, ::aws_smithy_types::date_time::Format::EpochSeconds)?;
         710  +
        /* JsonSerializerGenerator.kt:382 */
  361    711   
    }
         712  +
    /* JsonSerializerGenerator.kt:382 */
  362    713   
    if let Some(var_69) = &input.unix_timestamp {
         714  +
        /* JsonSerializerGenerator.kt:448 */
  363    715   
        object
  364    716   
            .key("UnixTimestamp")
  365    717   
            .date_time(var_69, ::aws_smithy_types::date_time::Format::EpochSeconds)?;
         718  +
        /* JsonSerializerGenerator.kt:382 */
  366    719   
    }
         720  +
    /* JsonSerializerGenerator.kt:372 */
  367    721   
    Ok(())
         722  +
    /* JsonSerializerGenerator.kt:358 */
  368    723   
}

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/protocol_serde/shape_kitchen_sink_operation.rs

@@ -1,1 +225,424 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::unnecessary_wraps)]
           4  +
/* ProtocolParserGenerator.kt:99 */
    3      5   
pub fn de_kitchen_sink_operation_http_error(
    4      6   
    _response_status: u16,
    5      7   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
    6      8   
    _response_body: &[u8],
    7      9   
) -> std::result::Result<
    8     10   
    crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput,
    9     11   
    crate::operation::kitchen_sink_operation::KitchenSinkOperationError,
   10     12   
> {
          13  +
    /* RustType.kt:516 */
   11     14   
    #[allow(unused_mut)]
          15  +
    /* ProtocolParserGenerator.kt:106 */
   12     16   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   13     17   
        .map_err(crate::operation::kitchen_sink_operation::KitchenSinkOperationError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:122 */
   15     21   
    let error_code = match generic.code() {
   16     22   
        Some(code) => code,
   17     23   
        None => return Err(crate::operation::kitchen_sink_operation::KitchenSinkOperationError::unhandled(generic)),
   18     24   
    };
   19     25   
   20     26   
    let _error_message = generic.message().map(|msg| msg.to_owned());
          27  +
    /* ProtocolParserGenerator.kt:133 */
   21     28   
    Err(match error_code {
          29  +
        /* ProtocolParserGenerator.kt:139 */
   22     30   
        "ErrorWithMembers" => crate::operation::kitchen_sink_operation::KitchenSinkOperationError::ErrorWithMembers({
          31  +
            /* RustType.kt:516 */
   23     32   
            #[allow(unused_mut)]
   24         -
            let mut tmp = {
   25         -
                #[allow(unused_mut)]
   26         -
                let mut output = crate::types::error::builders::ErrorWithMembersBuilder::default();
   27         -
                output = crate::protocol_serde::shape_error_with_members::de_error_with_members_json_err(_response_body, output)
   28         -
                    .map_err(crate::operation::kitchen_sink_operation::KitchenSinkOperationError::unhandled)?;
   29         -
                let output = output.meta(generic);
   30         -
                output.build()
   31         -
            };
          33  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          34  +
                /* ProtocolParserGenerator.kt:146 */ {
          35  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          36  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ErrorWithMembersBuilder::default();
          37  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_error_with_members::de_error_with_members_json_err(_response_body, output).map_err(crate::operation::kitchen_sink_operation::KitchenSinkOperationError::unhandled)?;
          38  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          39  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          40  +
                /* ProtocolParserGenerator.kt:146 */}
          41  +
            /* ProtocolParserGenerator.kt:145 */;
          42  +
            /* ProtocolParserGenerator.kt:170 */
   32     43   
            if tmp.message.is_none() {
   33     44   
                tmp.message = _error_message;
   34     45   
            }
          46  +
            /* ProtocolParserGenerator.kt:179 */
   35     47   
            tmp
          48  +
            /* ProtocolParserGenerator.kt:139 */
   36     49   
        }),
          50  +
        /* ProtocolParserGenerator.kt:139 */
   37     51   
        "ErrorWithoutMembers" => crate::operation::kitchen_sink_operation::KitchenSinkOperationError::ErrorWithoutMembers({
          52  +
            /* RustType.kt:516 */
   38     53   
            #[allow(unused_mut)]
   39         -
            let mut tmp = {
   40         -
                #[allow(unused_mut)]
   41         -
                let mut output = crate::types::error::builders::ErrorWithoutMembersBuilder::default();
   42         -
                output = crate::protocol_serde::shape_error_without_members::de_error_without_members_json_err(_response_body, output)
   43         -
                    .map_err(crate::operation::kitchen_sink_operation::KitchenSinkOperationError::unhandled)?;
   44         -
                let output = output.meta(generic);
   45         -
                output.build()
   46         -
            };
          54  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          55  +
                /* ProtocolParserGenerator.kt:146 */ {
          56  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          57  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ErrorWithoutMembersBuilder::default();
          58  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_error_without_members::de_error_without_members_json_err(_response_body, output).map_err(crate::operation::kitchen_sink_operation::KitchenSinkOperationError::unhandled)?;
          59  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          60  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          61  +
                /* ProtocolParserGenerator.kt:146 */}
          62  +
            /* ProtocolParserGenerator.kt:145 */;
          63  +
            /* ProtocolParserGenerator.kt:170 */
   47     64   
            if tmp.message.is_none() {
   48     65   
                tmp.message = _error_message;
   49     66   
            }
          67  +
            /* ProtocolParserGenerator.kt:179 */
   50     68   
            tmp
          69  +
            /* ProtocolParserGenerator.kt:139 */
   51     70   
        }),
   52         -
        _ => crate::operation::kitchen_sink_operation::KitchenSinkOperationError::generic(generic),
          71  +
        /* ProtocolParserGenerator.kt:182 */
          72  +
        _ => crate::operation::kitchen_sink_operation::KitchenSinkOperationError::generic(generic), /* ProtocolParserGenerator.kt:133 */
   53     73   
    })
          74  +
    /* ProtocolParserGenerator.kt:99 */
   54     75   
}
   55     76   
          77  +
/* RustType.kt:516 */
   56     78   
#[allow(clippy::unnecessary_wraps)]
          79  +
/* ProtocolParserGenerator.kt:71 */
   57     80   
pub fn de_kitchen_sink_operation_http_response(
   58     81   
    _response_status: u16,
   59     82   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   60     83   
    _response_body: &[u8],
   61     84   
) -> std::result::Result<
   62     85   
    crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput,
   63     86   
    crate::operation::kitchen_sink_operation::KitchenSinkOperationError,
   64     87   
> {
          88  +
    /* ProtocolParserGenerator.kt:77 */
   65     89   
    Ok({
          90  +
        /* RustType.kt:516 */
   66     91   
        #[allow(unused_mut)]
          92  +
        /* ProtocolParserGenerator.kt:240 */
   67     93   
        let mut output = crate::operation::kitchen_sink_operation::builders::KitchenSinkOperationOutputBuilder::default();
          94  +
        /* ProtocolParserGenerator.kt:247 */
   68     95   
        output = crate::protocol_serde::shape_kitchen_sink_operation::de_kitchen_sink_operation(_response_body, output)
   69     96   
            .map_err(crate::operation::kitchen_sink_operation::KitchenSinkOperationError::unhandled)?;
          97  +
        /* ClientBuilderInstantiator.kt:56 */
   70     98   
        output.build()
          99  +
        /* ProtocolParserGenerator.kt:77 */
   71    100   
    })
         101  +
    /* ProtocolParserGenerator.kt:71 */
   72    102   
}
   73    103   
         104  +
/* JsonSerializerGenerator.kt:287 */
   74    105   
pub fn ser_kitchen_sink_operation_input(
   75    106   
    input: &crate::operation::kitchen_sink_operation::KitchenSinkOperationInput,
   76    107   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
         108  +
    /* JsonSerializerGenerator.kt:291 */
   77    109   
    let mut out = String::new();
         110  +
    /* JsonSerializerGenerator.kt:292 */
   78    111   
    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
         112  +
    /* JsonSerializerGenerator.kt:375 */
   79    113   
    crate::protocol_serde::shape_kitchen_sink_operation_input::ser_kitchen_sink_operation_input_input(&mut object, input)?;
         114  +
    /* JsonSerializerGenerator.kt:295 */
   80    115   
    object.finish();
         116  +
    /* JsonSerializerGenerator.kt:296 */
   81    117   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
         118  +
    /* JsonSerializerGenerator.kt:287 */
   82    119   
}
   83    120   
         121  +
/* JsonParserGenerator.kt:148 */
   84    122   
pub(crate) fn de_kitchen_sink_operation(
   85    123   
    value: &[u8],
   86    124   
    mut builder: crate::operation::kitchen_sink_operation::builders::KitchenSinkOperationOutputBuilder,
   87    125   
) -> ::std::result::Result<
   88    126   
    crate::operation::kitchen_sink_operation::builders::KitchenSinkOperationOutputBuilder,
   89    127   
    ::aws_smithy_json::deserialize::error::DeserializeError,
   90    128   
> {
         129  +
    /* JsonParserGenerator.kt:153 */
   91    130   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
   92    131   
    let tokens = &mut tokens_owned;
   93    132   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
         133  +
    /* JsonParserGenerator.kt:684 */
   94    134   
    loop {
         135  +
        /* JsonParserGenerator.kt:685 */
   95    136   
        match tokens.next().transpose()? {
   96         -
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   97         -
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
         137  +
            /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
         138  +
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
         139  +
                /* JsonParserGenerator.kt:260 */
         140  +
                match key.to_unescaped()?.as_ref() {
         141  +
                    /* JsonParserGenerator.kt:262 */
   98    142   
                    "Blob" => {
   99         -
                    builder = builder.set_blob(::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?);
         143  +
                        /* JsonParserGenerator.kt:265 */
         144  +
                        builder = builder.set_blob(
         145  +
                            /* JsonParserGenerator.kt:326 */
         146  +
                            ::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?, /* JsonParserGenerator.kt:265 */
         147  +
                        );
         148  +
                        /* JsonParserGenerator.kt:262 */
  100    149   
                    }
         150  +
                    /* JsonParserGenerator.kt:262 */
  101    151   
                    "Boolean" => {
  102         -
                    builder = builder.set_boolean(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
         152  +
                        /* JsonParserGenerator.kt:265 */
         153  +
                        builder = builder.set_boolean(
         154  +
                            /* JsonParserGenerator.kt:298 */
         155  +
                            ::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?, /* JsonParserGenerator.kt:265 */
         156  +
                        );
         157  +
                        /* JsonParserGenerator.kt:262 */
  103    158   
                    }
         159  +
                    /* JsonParserGenerator.kt:262 */
  104    160   
                    "Double" => {
  105         -
                    builder =
  106         -
                        builder.set_double(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy()));
         161  +
                        /* JsonParserGenerator.kt:265 */
         162  +
                        builder = builder.set_double(
         163  +
                            /* JsonParserGenerator.kt:363 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy())
         164  +
                        /* JsonParserGenerator.kt:265 */);
         165  +
                        /* JsonParserGenerator.kt:262 */
  107    166   
                    }
         167  +
                    /* JsonParserGenerator.kt:262 */
  108    168   
                    "EmptyStruct" => {
  109         -
                    builder = builder.set_empty_struct(crate::protocol_serde::shape_empty_struct::de_empty_struct(tokens)?);
         169  +
                        /* JsonParserGenerator.kt:265 */
         170  +
                        builder = builder.set_empty_struct(
         171  +
                            /* JsonParserGenerator.kt:544 */
         172  +
                            crate::protocol_serde::shape_empty_struct::de_empty_struct(tokens)?, /* JsonParserGenerator.kt:265 */
         173  +
                        );
         174  +
                        /* JsonParserGenerator.kt:262 */
  110    175   
                    }
         176  +
                    /* JsonParserGenerator.kt:262 */
  111    177   
                    "Float" => {
  112         -
                    builder =
  113         -
                        builder.set_float(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy()));
         178  +
                        /* JsonParserGenerator.kt:265 */
         179  +
                        builder = builder.set_float(
         180  +
                            /* JsonParserGenerator.kt:361 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy())
         181  +
                        /* JsonParserGenerator.kt:265 */);
         182  +
                        /* JsonParserGenerator.kt:262 */
  114    183   
                    }
         184  +
                    /* JsonParserGenerator.kt:262 */
  115    185   
                    "HttpdateTimestamp" => {
  116         -
                    builder = builder.set_httpdate_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
         186  +
                        /* JsonParserGenerator.kt:265 */
         187  +
                        builder = builder.set_httpdate_timestamp(
         188  +
                            /* JsonParserGenerator.kt:384 */
         189  +
                            ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
  117    190   
                                tokens.next(),
  118    191   
                                ::aws_smithy_types::date_time::Format::HttpDate,
  119         -
                    )?);
         192  +
                            )?, /* JsonParserGenerator.kt:265 */
         193  +
                        );
         194  +
                        /* JsonParserGenerator.kt:262 */
  120    195   
                    }
         196  +
                    /* JsonParserGenerator.kt:262 */
  121    197   
                    "Integer" => {
         198  +
                        /* JsonParserGenerator.kt:265 */
  122    199   
                        builder = builder.set_integer(
         200  +
                            /* JsonParserGenerator.kt:365 */
  123    201   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  124    202   
                                .map(i32::try_from)
  125         -
                            .transpose()?,
         203  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  126    204   
                        );
         205  +
                        /* JsonParserGenerator.kt:262 */
  127    206   
                    }
         207  +
                    /* JsonParserGenerator.kt:262 */
  128    208   
                    "Iso8601Timestamp" => {
  129         -
                    builder = builder.set_iso8601_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
         209  +
                        /* JsonParserGenerator.kt:265 */
         210  +
                        builder = builder.set_iso8601_timestamp(
         211  +
                            /* JsonParserGenerator.kt:384 */
         212  +
                            ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
  130    213   
                                tokens.next(),
  131    214   
                                ::aws_smithy_types::date_time::Format::DateTimeWithOffset,
  132         -
                    )?);
         215  +
                            )?, /* JsonParserGenerator.kt:265 */
         216  +
                        );
         217  +
                        /* JsonParserGenerator.kt:262 */
  133    218   
                    }
         219  +
                    /* JsonParserGenerator.kt:262 */
  134    220   
                    "JsonValue" => {
         221  +
                        /* JsonParserGenerator.kt:265 */
  135    222   
                        builder = builder.set_json_value(
         223  +
                            /* JsonParserGenerator.kt:354 */
  136    224   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  137         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
  138         -
                            .transpose()?,
         225  +
                                .map(|s|
         226  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         227  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
         228  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         229  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  139    230   
                        );
         231  +
                        /* JsonParserGenerator.kt:262 */
  140    232   
                    }
         233  +
                    /* JsonParserGenerator.kt:262 */
  141    234   
                    "ListOfLists" => {
  142         -
                    builder = builder.set_list_of_lists(crate::protocol_serde::shape_list_of_list_of_strings::de_list_of_list_of_strings(tokens)?);
         235  +
                        /* JsonParserGenerator.kt:265 */
         236  +
                        builder = builder.set_list_of_lists(
         237  +
                            /* JsonParserGenerator.kt:451 */crate::protocol_serde::shape_list_of_list_of_strings::de_list_of_list_of_strings(tokens)?
         238  +
                        /* JsonParserGenerator.kt:265 */);
         239  +
                        /* JsonParserGenerator.kt:262 */
  143    240   
                    }
         241  +
                    /* JsonParserGenerator.kt:262 */
  144    242   
                    "ListOfMapsOfStrings" => {
  145         -
                    builder = builder
  146         -
                        .set_list_of_maps_of_strings(crate::protocol_serde::shape_list_of_maps_of_strings::de_list_of_maps_of_strings(tokens)?);
         243  +
                        /* JsonParserGenerator.kt:265 */
         244  +
                        builder = builder.set_list_of_maps_of_strings(
         245  +
                            /* JsonParserGenerator.kt:451 */crate::protocol_serde::shape_list_of_maps_of_strings::de_list_of_maps_of_strings(tokens)?
         246  +
                        /* JsonParserGenerator.kt:265 */);
         247  +
                        /* JsonParserGenerator.kt:262 */
  147    248   
                    }
         249  +
                    /* JsonParserGenerator.kt:262 */
  148    250   
                    "ListOfStrings" => {
  149         -
                    builder = builder.set_list_of_strings(crate::protocol_serde::shape_list_of_strings::de_list_of_strings(tokens)?);
         251  +
                        /* JsonParserGenerator.kt:265 */
         252  +
                        builder = builder.set_list_of_strings(
         253  +
                            /* JsonParserGenerator.kt:451 */
         254  +
                            crate::protocol_serde::shape_list_of_strings::de_list_of_strings(tokens)?, /* JsonParserGenerator.kt:265 */
         255  +
                        );
         256  +
                        /* JsonParserGenerator.kt:262 */
  150    257   
                    }
         258  +
                    /* JsonParserGenerator.kt:262 */
  151    259   
                    "ListOfStructs" => {
  152         -
                    builder = builder.set_list_of_structs(crate::protocol_serde::shape_list_of_structs::de_list_of_structs(tokens)?);
         260  +
                        /* JsonParserGenerator.kt:265 */
         261  +
                        builder = builder.set_list_of_structs(
         262  +
                            /* JsonParserGenerator.kt:451 */
         263  +
                            crate::protocol_serde::shape_list_of_structs::de_list_of_structs(tokens)?, /* JsonParserGenerator.kt:265 */
         264  +
                        );
         265  +
                        /* JsonParserGenerator.kt:262 */
  153    266   
                    }
         267  +
                    /* JsonParserGenerator.kt:262 */
  154    268   
                    "Long" => {
         269  +
                        /* JsonParserGenerator.kt:265 */
  155    270   
                        builder = builder.set_long(
         271  +
                            /* JsonParserGenerator.kt:365 */
  156    272   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  157    273   
                                .map(i64::try_from)
  158         -
                            .transpose()?,
         274  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  159    275   
                        );
         276  +
                        /* JsonParserGenerator.kt:262 */
  160    277   
                    }
         278  +
                    /* JsonParserGenerator.kt:262 */
  161    279   
                    "MapOfListsOfStrings" => {
  162         -
                    builder = builder
  163         -
                        .set_map_of_lists_of_strings(crate::protocol_serde::shape_map_of_lists_of_strings::de_map_of_lists_of_strings(tokens)?);
         280  +
                        /* JsonParserGenerator.kt:265 */
         281  +
                        builder = builder.set_map_of_lists_of_strings(
         282  +
                            /* JsonParserGenerator.kt:509 */crate::protocol_serde::shape_map_of_lists_of_strings::de_map_of_lists_of_strings(tokens)?
         283  +
                        /* JsonParserGenerator.kt:265 */);
         284  +
                        /* JsonParserGenerator.kt:262 */
  164    285   
                    }
         286  +
                    /* JsonParserGenerator.kt:262 */
  165    287   
                    "MapOfMaps" => {
  166         -
                    builder = builder.set_map_of_maps(crate::protocol_serde::shape_map_of_map_of_strings::de_map_of_map_of_strings(tokens)?);
         288  +
                        /* JsonParserGenerator.kt:265 */
         289  +
                        builder = builder.set_map_of_maps(
         290  +
                            /* JsonParserGenerator.kt:509 */
         291  +
                            crate::protocol_serde::shape_map_of_map_of_strings::de_map_of_map_of_strings(tokens)?, /* JsonParserGenerator.kt:265 */
         292  +
                        );
         293  +
                        /* JsonParserGenerator.kt:262 */
  167    294   
                    }
         295  +
                    /* JsonParserGenerator.kt:262 */
  168    296   
                    "MapOfStrings" => {
  169         -
                    builder = builder.set_map_of_strings(crate::protocol_serde::shape_map_of_strings::de_map_of_strings(tokens)?);
         297  +
                        /* JsonParserGenerator.kt:265 */
         298  +
                        builder = builder.set_map_of_strings(
         299  +
                            /* JsonParserGenerator.kt:509 */
         300  +
                            crate::protocol_serde::shape_map_of_strings::de_map_of_strings(tokens)?, /* JsonParserGenerator.kt:265 */
         301  +
                        );
         302  +
                        /* JsonParserGenerator.kt:262 */
  170    303   
                    }
         304  +
                    /* JsonParserGenerator.kt:262 */
  171    305   
                    "MapOfStructs" => {
  172         -
                    builder = builder.set_map_of_structs(crate::protocol_serde::shape_map_of_structs::de_map_of_structs(tokens)?);
         306  +
                        /* JsonParserGenerator.kt:265 */
         307  +
                        builder = builder.set_map_of_structs(
         308  +
                            /* JsonParserGenerator.kt:509 */
         309  +
                            crate::protocol_serde::shape_map_of_structs::de_map_of_structs(tokens)?, /* JsonParserGenerator.kt:265 */
         310  +
                        );
         311  +
                        /* JsonParserGenerator.kt:262 */
  173    312   
                    }
         313  +
                    /* JsonParserGenerator.kt:262 */
  174    314   
                    "RecursiveList" => {
  175         -
                    builder = builder.set_recursive_list(crate::protocol_serde::shape_list_of_kitchen_sinks::de_list_of_kitchen_sinks(tokens)?);
         315  +
                        /* JsonParserGenerator.kt:265 */
         316  +
                        builder = builder.set_recursive_list(
         317  +
                            /* JsonParserGenerator.kt:451 */
         318  +
                            crate::protocol_serde::shape_list_of_kitchen_sinks::de_list_of_kitchen_sinks(tokens)?, /* JsonParserGenerator.kt:265 */
         319  +
                        );
         320  +
                        /* JsonParserGenerator.kt:262 */
  176    321   
                    }
         322  +
                    /* JsonParserGenerator.kt:262 */
  177    323   
                    "RecursiveMap" => {
  178         -
                    builder = builder.set_recursive_map(crate::protocol_serde::shape_map_of_kitchen_sinks::de_map_of_kitchen_sinks(tokens)?);
         324  +
                        /* JsonParserGenerator.kt:265 */
         325  +
                        builder = builder.set_recursive_map(
         326  +
                            /* JsonParserGenerator.kt:509 */
         327  +
                            crate::protocol_serde::shape_map_of_kitchen_sinks::de_map_of_kitchen_sinks(tokens)?, /* JsonParserGenerator.kt:265 */
         328  +
                        );
         329  +
                        /* JsonParserGenerator.kt:262 */
  179    330   
                    }
         331  +
                    /* JsonParserGenerator.kt:262 */
  180    332   
                    "RecursiveStruct" => {
  181         -
                    builder = builder.set_recursive_struct(crate::protocol_serde::shape_kitchen_sink::de_kitchen_sink(tokens)?.map(Box::new));
         333  +
                        /* JsonParserGenerator.kt:265 */
         334  +
                        builder = builder.set_recursive_struct(
         335  +
                            /* JsonParserGenerator.kt:544 */
         336  +
                            crate::protocol_serde::shape_kitchen_sink::de_kitchen_sink(tokens)?
         337  +
                                /* JsonParserGenerator.kt:314 */
         338  +
                                .map(Box::new), /* JsonParserGenerator.kt:265 */
         339  +
                        );
         340  +
                        /* JsonParserGenerator.kt:262 */
  182    341   
                    }
         342  +
                    /* JsonParserGenerator.kt:262 */
  183    343   
                    "SimpleStruct" => {
  184         -
                    builder = builder.set_simple_struct(crate::protocol_serde::shape_simple_struct::de_simple_struct(tokens)?);
         344  +
                        /* JsonParserGenerator.kt:265 */
         345  +
                        builder = builder.set_simple_struct(
         346  +
                            /* JsonParserGenerator.kt:544 */
         347  +
                            crate::protocol_serde::shape_simple_struct::de_simple_struct(tokens)?, /* JsonParserGenerator.kt:265 */
         348  +
                        );
         349  +
                        /* JsonParserGenerator.kt:262 */
  185    350   
                    }
         351  +
                    /* JsonParserGenerator.kt:262 */
  186    352   
                    "String" => {
         353  +
                        /* JsonParserGenerator.kt:265 */
  187    354   
                        builder = builder.set_string(
         355  +
                            /* JsonParserGenerator.kt:354 */
  188    356   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  189         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
  190         -
                            .transpose()?,
         357  +
                                .map(|s|
         358  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         359  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
         360  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         361  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  191    362   
                        );
         363  +
                        /* JsonParserGenerator.kt:262 */
  192    364   
                    }
         365  +
                    /* JsonParserGenerator.kt:262 */
  193    366   
                    "StructWithJsonName" => {
  194         -
                    builder =
  195         -
                        builder.set_struct_with_json_name(crate::protocol_serde::shape_struct_with_json_name::de_struct_with_json_name(tokens)?);
         367  +
                        /* JsonParserGenerator.kt:265 */
         368  +
                        builder = builder.set_struct_with_json_name(
         369  +
                            /* JsonParserGenerator.kt:544 */
         370  +
                            crate::protocol_serde::shape_struct_with_json_name::de_struct_with_json_name(tokens)?, /* JsonParserGenerator.kt:265 */
         371  +
                        );
         372  +
                        /* JsonParserGenerator.kt:262 */
  196    373   
                    }
         374  +
                    /* JsonParserGenerator.kt:262 */
  197    375   
                    "Timestamp" => {
  198         -
                    builder = builder.set_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
         376  +
                        /* JsonParserGenerator.kt:265 */
         377  +
                        builder = builder.set_timestamp(
         378  +
                            /* JsonParserGenerator.kt:384 */
         379  +
                            ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
  199    380   
                                tokens.next(),
  200    381   
                                ::aws_smithy_types::date_time::Format::EpochSeconds,
  201         -
                    )?);
         382  +
                            )?, /* JsonParserGenerator.kt:265 */
         383  +
                        );
         384  +
                        /* JsonParserGenerator.kt:262 */
  202    385   
                    }
         386  +
                    /* JsonParserGenerator.kt:262 */
  203    387   
                    "UnixTimestamp" => {
  204         -
                    builder = builder.set_unix_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
         388  +
                        /* JsonParserGenerator.kt:265 */
         389  +
                        builder = builder.set_unix_timestamp(
         390  +
                            /* JsonParserGenerator.kt:384 */
         391  +
                            ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
  205    392   
                                tokens.next(),
  206    393   
                                ::aws_smithy_types::date_time::Format::EpochSeconds,
  207         -
                    )?);
         394  +
                            )?, /* JsonParserGenerator.kt:265 */
         395  +
                        );
         396  +
                        /* JsonParserGenerator.kt:262 */
  208    397   
                    }
  209         -
                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
  210         -
            },
         398  +
                    /* JsonParserGenerator.kt:290 */
         399  +
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
         400  +
                }
         401  +
                /* JsonParserGenerator.kt:686 */
         402  +
            }
         403  +
            /* JsonParserGenerator.kt:695 */
  211    404   
            other => {
  212    405   
                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  213    406   
                    "expected object key or end object, found: {:?}",
  214    407   
                    other
  215    408   
                )))
         409  +
            } /* JsonParserGenerator.kt:685 */
  216    410   
        }
         411  +
        /* JsonParserGenerator.kt:684 */
  217    412   
    }
  218         -
    }
         413  +
    /* JsonParserGenerator.kt:250 */
  219    414   
    if tokens.next().is_some() {
         415  +
        /* JsonParserGenerator.kt:251 */
  220    416   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
  221    417   
            "found more JSON tokens after completing parsing",
  222    418   
        ));
         419  +
        /* JsonParserGenerator.kt:250 */
  223    420   
    }
         421  +
    /* JsonParserGenerator.kt:163 */
  224    422   
    Ok(builder)
         423  +
    /* JsonParserGenerator.kt:148 */
  225    424   
}

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/protocol_serde/shape_kitchen_sink_operation_input.rs

@@ -1,1 +220,416 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
    2      3   
pub fn ser_kitchen_sink_operation_input_input(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::operation::kitchen_sink_operation::KitchenSinkOperationInput,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.blob {
           9  +
        /* JsonSerializerGenerator.kt:439 */
    7     10   
        object.key("Blob").string_unchecked(&::aws_smithy_types::base64::encode(var_1));
          11  +
        /* JsonSerializerGenerator.kt:382 */
    8     12   
    }
          13  +
    /* JsonSerializerGenerator.kt:382 */
    9     14   
    if let Some(var_2) = &input.boolean {
          15  +
        /* JsonSerializerGenerator.kt:424 */
   10     16   
        object.key("Boolean").boolean(*var_2);
          17  +
        /* JsonSerializerGenerator.kt:382 */
   11     18   
    }
          19  +
    /* JsonSerializerGenerator.kt:382 */
   12     20   
    if let Some(var_3) = &input.double {
          21  +
        /* JsonSerializerGenerator.kt:432 */
   13     22   
        object.key("Double").number(
   14     23   
            #[allow(clippy::useless_conversion)]
   15     24   
            ::aws_smithy_types::Number::Float((*var_3).into()),
   16     25   
        );
          26  +
        /* JsonSerializerGenerator.kt:382 */
   17     27   
    }
          28  +
    /* JsonSerializerGenerator.kt:382 */
   18     29   
    if let Some(var_4) = &input.empty_struct {
          30  +
        /* JsonSerializerGenerator.kt:495 */
   19     31   
        #[allow(unused_mut)]
          32  +
        /* JsonSerializerGenerator.kt:496 */
   20     33   
        let mut object_5 = object.key("EmptyStruct").start_object();
          34  +
        /* JsonSerializerGenerator.kt:375 */
   21     35   
        crate::protocol_serde::shape_empty_struct::ser_empty_struct(&mut object_5, var_4)?;
          36  +
        /* JsonSerializerGenerator.kt:515 */
   22     37   
        object_5.finish();
          38  +
        /* JsonSerializerGenerator.kt:382 */
   23     39   
    }
          40  +
    /* JsonSerializerGenerator.kt:382 */
   24     41   
    if let Some(var_6) = &input.float {
          42  +
        /* JsonSerializerGenerator.kt:432 */
   25     43   
        object.key("Float").number(
   26     44   
            #[allow(clippy::useless_conversion)]
   27     45   
            ::aws_smithy_types::Number::Float((*var_6).into()),
   28     46   
        );
          47  +
        /* JsonSerializerGenerator.kt:382 */
   29     48   
    }
          49  +
    /* JsonSerializerGenerator.kt:382 */
   30     50   
    if let Some(var_7) = &input.httpdate_timestamp {
          51  +
        /* JsonSerializerGenerator.kt:448 */
   31     52   
        object
   32     53   
            .key("HttpdateTimestamp")
   33     54   
            .date_time(var_7, ::aws_smithy_types::date_time::Format::HttpDate)?;
          55  +
        /* JsonSerializerGenerator.kt:382 */
   34     56   
    }
          57  +
    /* JsonSerializerGenerator.kt:382 */
   35     58   
    if let Some(var_8) = &input.integer {
          59  +
        /* JsonSerializerGenerator.kt:432 */
   36     60   
        object.key("Integer").number(
   37     61   
            #[allow(clippy::useless_conversion)]
   38     62   
            ::aws_smithy_types::Number::NegInt((*var_8).into()),
   39     63   
        );
          64  +
        /* JsonSerializerGenerator.kt:382 */
   40     65   
    }
          66  +
    /* JsonSerializerGenerator.kt:382 */
   41     67   
    if let Some(var_9) = &input.iso8601_timestamp {
          68  +
        /* JsonSerializerGenerator.kt:448 */
   42     69   
        object
   43     70   
            .key("Iso8601Timestamp")
   44     71   
            .date_time(var_9, ::aws_smithy_types::date_time::Format::DateTime)?;
          72  +
        /* JsonSerializerGenerator.kt:382 */
   45     73   
    }
          74  +
    /* JsonSerializerGenerator.kt:382 */
   46     75   
    if let Some(var_10) = &input.json_value {
          76  +
        /* JsonSerializerGenerator.kt:423 */
   47     77   
        object.key("JsonValue").string(var_10.as_str());
          78  +
        /* JsonSerializerGenerator.kt:382 */
   48     79   
    }
          80  +
    /* JsonSerializerGenerator.kt:382 */
   49     81   
    if let Some(var_11) = &input.list_of_lists {
          82  +
        /* JsonSerializerGenerator.kt:484 */
   50     83   
        let mut array_12 = object.key("ListOfLists").start_array();
          84  +
        /* JsonSerializerGenerator.kt:524 */
   51     85   
        for item_13 in var_11 {
          86  +
            /* SerializerUtil.kt:42 */
   52     87   
            {
          88  +
                /* JsonSerializerGenerator.kt:484 */
   53     89   
                let mut array_14 = array_12.value().start_array();
          90  +
                /* JsonSerializerGenerator.kt:524 */
   54     91   
                for item_15 in item_13 {
          92  +
                    /* SerializerUtil.kt:42 */
   55     93   
                    {
          94  +
                        /* JsonSerializerGenerator.kt:423 */
   56     95   
                        array_14.value().string(item_15.as_str());
          96  +
                        /* SerializerUtil.kt:42 */
   57     97   
                    }
          98  +
                    /* JsonSerializerGenerator.kt:524 */
   58     99   
                }
         100  +
                /* JsonSerializerGenerator.kt:486 */
   59    101   
                array_14.finish();
         102  +
                /* SerializerUtil.kt:42 */
   60    103   
            }
         104  +
            /* JsonSerializerGenerator.kt:524 */
   61    105   
        }
         106  +
        /* JsonSerializerGenerator.kt:486 */
   62    107   
        array_12.finish();
         108  +
        /* JsonSerializerGenerator.kt:382 */
   63    109   
    }
         110  +
    /* JsonSerializerGenerator.kt:382 */
   64    111   
    if let Some(var_16) = &input.list_of_maps_of_strings {
         112  +
        /* JsonSerializerGenerator.kt:484 */
   65    113   
        let mut array_17 = object.key("ListOfMapsOfStrings").start_array();
         114  +
        /* JsonSerializerGenerator.kt:524 */
   66    115   
        for item_18 in var_16 {
         116  +
            /* SerializerUtil.kt:42 */
   67    117   
            {
         118  +
                /* JsonSerializerGenerator.kt:495 */
   68    119   
                #[allow(unused_mut)]
         120  +
                /* JsonSerializerGenerator.kt:496 */
   69    121   
                let mut object_19 = array_17.value().start_object();
         122  +
                /* JsonSerializerGenerator.kt:537 */
   70    123   
                for (key_20, value_21) in item_18 {
         124  +
                    /* SerializerUtil.kt:42 */
   71    125   
                    {
         126  +
                        /* JsonSerializerGenerator.kt:423 */
   72    127   
                        object_19.key(key_20.as_str()).string(value_21.as_str());
         128  +
                        /* SerializerUtil.kt:42 */
   73    129   
                    }
         130  +
                    /* JsonSerializerGenerator.kt:537 */
   74    131   
                }
         132  +
                /* JsonSerializerGenerator.kt:515 */
   75    133   
                object_19.finish();
         134  +
                /* SerializerUtil.kt:42 */
   76    135   
            }
         136  +
            /* JsonSerializerGenerator.kt:524 */
   77    137   
        }
         138  +
        /* JsonSerializerGenerator.kt:486 */
   78    139   
        array_17.finish();
         140  +
        /* JsonSerializerGenerator.kt:382 */
   79    141   
    }
         142  +
    /* JsonSerializerGenerator.kt:382 */
   80    143   
    if let Some(var_22) = &input.list_of_strings {
         144  +
        /* JsonSerializerGenerator.kt:484 */
   81    145   
        let mut array_23 = object.key("ListOfStrings").start_array();
         146  +
        /* JsonSerializerGenerator.kt:524 */
   82    147   
        for item_24 in var_22 {
         148  +
            /* SerializerUtil.kt:42 */
   83    149   
            {
         150  +
                /* JsonSerializerGenerator.kt:423 */
   84    151   
                array_23.value().string(item_24.as_str());
         152  +
                /* SerializerUtil.kt:42 */
   85    153   
            }
         154  +
            /* JsonSerializerGenerator.kt:524 */
   86    155   
        }
         156  +
        /* JsonSerializerGenerator.kt:486 */
   87    157   
        array_23.finish();
         158  +
        /* JsonSerializerGenerator.kt:382 */
   88    159   
    }
         160  +
    /* JsonSerializerGenerator.kt:382 */
   89    161   
    if let Some(var_25) = &input.list_of_structs {
         162  +
        /* JsonSerializerGenerator.kt:484 */
   90    163   
        let mut array_26 = object.key("ListOfStructs").start_array();
         164  +
        /* JsonSerializerGenerator.kt:524 */
   91    165   
        for item_27 in var_25 {
         166  +
            /* SerializerUtil.kt:42 */
   92    167   
            {
         168  +
                /* JsonSerializerGenerator.kt:495 */
   93    169   
                #[allow(unused_mut)]
         170  +
                /* JsonSerializerGenerator.kt:496 */
   94    171   
                let mut object_28 = array_26.value().start_object();
         172  +
                /* JsonSerializerGenerator.kt:375 */
   95    173   
                crate::protocol_serde::shape_simple_struct::ser_simple_struct(&mut object_28, item_27)?;
         174  +
                /* JsonSerializerGenerator.kt:515 */
   96    175   
                object_28.finish();
         176  +
                /* SerializerUtil.kt:42 */
   97    177   
            }
         178  +
            /* JsonSerializerGenerator.kt:524 */
   98    179   
        }
         180  +
        /* JsonSerializerGenerator.kt:486 */
   99    181   
        array_26.finish();
         182  +
        /* JsonSerializerGenerator.kt:382 */
  100    183   
    }
         184  +
    /* JsonSerializerGenerator.kt:382 */
  101    185   
    if let Some(var_29) = &input.long {
         186  +
        /* JsonSerializerGenerator.kt:432 */
  102    187   
        object.key("Long").number(
  103    188   
            #[allow(clippy::useless_conversion)]
  104    189   
            ::aws_smithy_types::Number::NegInt((*var_29).into()),
  105    190   
        );
         191  +
        /* JsonSerializerGenerator.kt:382 */
  106    192   
    }
         193  +
    /* JsonSerializerGenerator.kt:382 */
  107    194   
    if let Some(var_30) = &input.map_of_lists_of_strings {
         195  +
        /* JsonSerializerGenerator.kt:495 */
  108    196   
        #[allow(unused_mut)]
         197  +
        /* JsonSerializerGenerator.kt:496 */
  109    198   
        let mut object_31 = object.key("MapOfListsOfStrings").start_object();
         199  +
        /* JsonSerializerGenerator.kt:537 */
  110    200   
        for (key_32, value_33) in var_30 {
         201  +
            /* SerializerUtil.kt:42 */
  111    202   
            {
         203  +
                /* JsonSerializerGenerator.kt:484 */
  112    204   
                let mut array_34 = object_31.key(key_32.as_str()).start_array();
         205  +
                /* JsonSerializerGenerator.kt:524 */
  113    206   
                for item_35 in value_33 {
         207  +
                    /* SerializerUtil.kt:42 */
  114    208   
                    {
         209  +
                        /* JsonSerializerGenerator.kt:423 */
  115    210   
                        array_34.value().string(item_35.as_str());
         211  +
                        /* SerializerUtil.kt:42 */
  116    212   
                    }
         213  +
                    /* JsonSerializerGenerator.kt:524 */
  117    214   
                }
         215  +
                /* JsonSerializerGenerator.kt:486 */
  118    216   
                array_34.finish();
         217  +
                /* SerializerUtil.kt:42 */
  119    218   
            }
         219  +
            /* JsonSerializerGenerator.kt:537 */
  120    220   
        }
         221  +
        /* JsonSerializerGenerator.kt:515 */
  121    222   
        object_31.finish();
         223  +
        /* JsonSerializerGenerator.kt:382 */
  122    224   
    }
         225  +
    /* JsonSerializerGenerator.kt:382 */
  123    226   
    if let Some(var_36) = &input.map_of_maps {
         227  +
        /* JsonSerializerGenerator.kt:495 */
  124    228   
        #[allow(unused_mut)]
         229  +
        /* JsonSerializerGenerator.kt:496 */
  125    230   
        let mut object_37 = object.key("MapOfMaps").start_object();
         231  +
        /* JsonSerializerGenerator.kt:537 */
  126    232   
        for (key_38, value_39) in var_36 {
         233  +
            /* SerializerUtil.kt:42 */
  127    234   
            {
         235  +
                /* JsonSerializerGenerator.kt:495 */
  128    236   
                #[allow(unused_mut)]
         237  +
                /* JsonSerializerGenerator.kt:496 */
  129    238   
                let mut object_40 = object_37.key(key_38.as_str()).start_object();
         239  +
                /* JsonSerializerGenerator.kt:537 */
  130    240   
                for (key_41, value_42) in value_39 {
         241  +
                    /* SerializerUtil.kt:42 */
  131    242   
                    {
         243  +
                        /* JsonSerializerGenerator.kt:423 */
  132    244   
                        object_40.key(key_41.as_str()).string(value_42.as_str());
         245  +
                        /* SerializerUtil.kt:42 */
  133    246   
                    }
         247  +
                    /* JsonSerializerGenerator.kt:537 */
  134    248   
                }
         249  +
                /* JsonSerializerGenerator.kt:515 */
  135    250   
                object_40.finish();
         251  +
                /* SerializerUtil.kt:42 */
  136    252   
            }
         253  +
            /* JsonSerializerGenerator.kt:537 */
  137    254   
        }
         255  +
        /* JsonSerializerGenerator.kt:515 */
  138    256   
        object_37.finish();
         257  +
        /* JsonSerializerGenerator.kt:382 */
  139    258   
    }
         259  +
    /* JsonSerializerGenerator.kt:382 */
  140    260   
    if let Some(var_43) = &input.map_of_strings {
         261  +
        /* JsonSerializerGenerator.kt:495 */
  141    262   
        #[allow(unused_mut)]
         263  +
        /* JsonSerializerGenerator.kt:496 */
  142    264   
        let mut object_44 = object.key("MapOfStrings").start_object();
         265  +
        /* JsonSerializerGenerator.kt:537 */
  143    266   
        for (key_45, value_46) in var_43 {
         267  +
            /* SerializerUtil.kt:42 */
  144    268   
            {
         269  +
                /* JsonSerializerGenerator.kt:423 */
  145    270   
                object_44.key(key_45.as_str()).string(value_46.as_str());
         271  +
                /* SerializerUtil.kt:42 */
  146    272   
            }
         273  +
            /* JsonSerializerGenerator.kt:537 */
  147    274   
        }
         275  +
        /* JsonSerializerGenerator.kt:515 */
  148    276   
        object_44.finish();
         277  +
        /* JsonSerializerGenerator.kt:382 */
  149    278   
    }
         279  +
    /* JsonSerializerGenerator.kt:382 */
  150    280   
    if let Some(var_47) = &input.map_of_structs {
         281  +
        /* JsonSerializerGenerator.kt:495 */
  151    282   
        #[allow(unused_mut)]
         283  +
        /* JsonSerializerGenerator.kt:496 */
  152    284   
        let mut object_48 = object.key("MapOfStructs").start_object();
         285  +
        /* JsonSerializerGenerator.kt:537 */
  153    286   
        for (key_49, value_50) in var_47 {
         287  +
            /* SerializerUtil.kt:42 */
  154    288   
            {
         289  +
                /* JsonSerializerGenerator.kt:495 */
  155    290   
                #[allow(unused_mut)]
         291  +
                /* JsonSerializerGenerator.kt:496 */
  156    292   
                let mut object_51 = object_48.key(key_49.as_str()).start_object();
         293  +
                /* JsonSerializerGenerator.kt:375 */
  157    294   
                crate::protocol_serde::shape_simple_struct::ser_simple_struct(&mut object_51, value_50)?;
         295  +
                /* JsonSerializerGenerator.kt:515 */
  158    296   
                object_51.finish();
         297  +
                /* SerializerUtil.kt:42 */
  159    298   
            }
         299  +
            /* JsonSerializerGenerator.kt:537 */
  160    300   
        }
         301  +
        /* JsonSerializerGenerator.kt:515 */
  161    302   
        object_48.finish();
         303  +
        /* JsonSerializerGenerator.kt:382 */
  162    304   
    }
         305  +
    /* JsonSerializerGenerator.kt:382 */
  163    306   
    if let Some(var_52) = &input.recursive_list {
         307  +
        /* JsonSerializerGenerator.kt:484 */
  164    308   
        let mut array_53 = object.key("RecursiveList").start_array();
         309  +
        /* JsonSerializerGenerator.kt:524 */
  165    310   
        for item_54 in var_52 {
         311  +
            /* SerializerUtil.kt:42 */
  166    312   
            {
         313  +
                /* JsonSerializerGenerator.kt:495 */
  167    314   
                #[allow(unused_mut)]
         315  +
                /* JsonSerializerGenerator.kt:496 */
  168    316   
                let mut object_55 = array_53.value().start_object();
         317  +
                /* JsonSerializerGenerator.kt:375 */
  169    318   
                crate::protocol_serde::shape_kitchen_sink::ser_kitchen_sink(&mut object_55, item_54)?;
         319  +
                /* JsonSerializerGenerator.kt:515 */
  170    320   
                object_55.finish();
         321  +
                /* SerializerUtil.kt:42 */
  171    322   
            }
         323  +
            /* JsonSerializerGenerator.kt:524 */
  172    324   
        }
         325  +
        /* JsonSerializerGenerator.kt:486 */
  173    326   
        array_53.finish();
         327  +
        /* JsonSerializerGenerator.kt:382 */
  174    328   
    }
         329  +
    /* JsonSerializerGenerator.kt:382 */
  175    330   
    if let Some(var_56) = &input.recursive_map {
         331  +
        /* JsonSerializerGenerator.kt:495 */
  176    332   
        #[allow(unused_mut)]
         333  +
        /* JsonSerializerGenerator.kt:496 */
  177    334   
        let mut object_57 = object.key("RecursiveMap").start_object();
         335  +
        /* JsonSerializerGenerator.kt:537 */
  178    336   
        for (key_58, value_59) in var_56 {
         337  +
            /* SerializerUtil.kt:42 */
  179    338   
            {
         339  +
                /* JsonSerializerGenerator.kt:495 */
  180    340   
                #[allow(unused_mut)]
         341  +
                /* JsonSerializerGenerator.kt:496 */
  181    342   
                let mut object_60 = object_57.key(key_58.as_str()).start_object();
         343  +
                /* JsonSerializerGenerator.kt:375 */
  182    344   
                crate::protocol_serde::shape_kitchen_sink::ser_kitchen_sink(&mut object_60, value_59)?;
         345  +
                /* JsonSerializerGenerator.kt:515 */
  183    346   
                object_60.finish();
         347  +
                /* SerializerUtil.kt:42 */
  184    348   
            }
         349  +
            /* JsonSerializerGenerator.kt:537 */
  185    350   
        }
         351  +
        /* JsonSerializerGenerator.kt:515 */
  186    352   
        object_57.finish();
         353  +
        /* JsonSerializerGenerator.kt:382 */
  187    354   
    }
         355  +
    /* JsonSerializerGenerator.kt:382 */
  188    356   
    if let Some(var_61) = &input.recursive_struct {
         357  +
        /* JsonSerializerGenerator.kt:495 */
  189    358   
        #[allow(unused_mut)]
         359  +
        /* JsonSerializerGenerator.kt:496 */
  190    360   
        let mut object_62 = object.key("RecursiveStruct").start_object();
         361  +
        /* JsonSerializerGenerator.kt:375 */
  191    362   
        crate::protocol_serde::shape_kitchen_sink::ser_kitchen_sink(&mut object_62, var_61)?;
         363  +
        /* JsonSerializerGenerator.kt:515 */
  192    364   
        object_62.finish();
         365  +
        /* JsonSerializerGenerator.kt:382 */
  193    366   
    }
         367  +
    /* JsonSerializerGenerator.kt:382 */
  194    368   
    if let Some(var_63) = &input.simple_struct {
         369  +
        /* JsonSerializerGenerator.kt:495 */
  195    370   
        #[allow(unused_mut)]
         371  +
        /* JsonSerializerGenerator.kt:496 */
  196    372   
        let mut object_64 = object.key("SimpleStruct").start_object();
         373  +
        /* JsonSerializerGenerator.kt:375 */
  197    374   
        crate::protocol_serde::shape_simple_struct::ser_simple_struct(&mut object_64, var_63)?;
         375  +
        /* JsonSerializerGenerator.kt:515 */
  198    376   
        object_64.finish();
         377  +
        /* JsonSerializerGenerator.kt:382 */
  199    378   
    }
         379  +
    /* JsonSerializerGenerator.kt:382 */
  200    380   
    if let Some(var_65) = &input.string {
         381  +
        /* JsonSerializerGenerator.kt:423 */
  201    382   
        object.key("String").string(var_65.as_str());
         383  +
        /* JsonSerializerGenerator.kt:382 */
  202    384   
    }
         385  +
    /* JsonSerializerGenerator.kt:382 */
  203    386   
    if let Some(var_66) = &input.struct_with_json_name {
         387  +
        /* JsonSerializerGenerator.kt:495 */
  204    388   
        #[allow(unused_mut)]
         389  +
        /* JsonSerializerGenerator.kt:496 */
  205    390   
        let mut object_67 = object.key("StructWithJsonName").start_object();
         391  +
        /* JsonSerializerGenerator.kt:375 */
  206    392   
        crate::protocol_serde::shape_struct_with_json_name::ser_struct_with_json_name(&mut object_67, var_66)?;
         393  +
        /* JsonSerializerGenerator.kt:515 */
  207    394   
        object_67.finish();
         395  +
        /* JsonSerializerGenerator.kt:382 */
  208    396   
    }
         397  +
    /* JsonSerializerGenerator.kt:382 */
  209    398   
    if let Some(var_68) = &input.timestamp {
         399  +
        /* JsonSerializerGenerator.kt:448 */
  210    400   
        object
  211    401   
            .key("Timestamp")
  212    402   
            .date_time(var_68, ::aws_smithy_types::date_time::Format::EpochSeconds)?;
         403  +
        /* JsonSerializerGenerator.kt:382 */
  213    404   
    }
         405  +
    /* JsonSerializerGenerator.kt:382 */
  214    406   
    if let Some(var_69) = &input.unix_timestamp {
         407  +
        /* JsonSerializerGenerator.kt:448 */
  215    408   
        object
  216    409   
            .key("UnixTimestamp")
  217    410   
            .date_time(var_69, ::aws_smithy_types::date_time::Format::EpochSeconds)?;
         411  +
        /* JsonSerializerGenerator.kt:382 */
  218    412   
    }
         413  +
    /* JsonSerializerGenerator.kt:372 */
  219    414   
    Ok(())
         415  +
    /* JsonSerializerGenerator.kt:358 */
  220    416   
}