Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_no_input_and_no_output.rs

@@ -1,1 +38,56 @@
    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_no_input_and_no_output_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::no_input_and_no_output::NoInputAndNoOutputOutput,
    9     11   
    crate::operation::no_input_and_no_output::NoInputAndNoOutputError,
   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::no_input_and_no_output::NoInputAndNoOutputError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:185 */
   15     21   
    Err(crate::operation::no_input_and_no_output::NoInputAndNoOutputError::generic(generic))
          22  +
    /* ProtocolParserGenerator.kt:99 */
   16     23   
}
   17     24   
          25  +
/* RustType.kt:516 */
   18     26   
#[allow(clippy::unnecessary_wraps)]
          27  +
/* ProtocolParserGenerator.kt:71 */
   19     28   
pub fn de_no_input_and_no_output_http_response(
   20     29   
    _response_status: u16,
   21     30   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   22     31   
    _response_body: &[u8],
   23     32   
) -> std::result::Result<
   24     33   
    crate::operation::no_input_and_no_output::NoInputAndNoOutputOutput,
   25     34   
    crate::operation::no_input_and_no_output::NoInputAndNoOutputError,
   26     35   
> {
          36  +
    /* ProtocolParserGenerator.kt:77 */
   27     37   
    Ok({
          38  +
        /* RustType.kt:516 */
   28     39   
        #[allow(unused_mut)]
          40  +
        /* ProtocolParserGenerator.kt:240 */
   29     41   
        let mut output = crate::operation::no_input_and_no_output::builders::NoInputAndNoOutputOutputBuilder::default();
          42  +
        /* ClientBuilderInstantiator.kt:56 */
   30     43   
        output.build()
          44  +
        /* ProtocolParserGenerator.kt:77 */
   31     45   
    })
          46  +
    /* ProtocolParserGenerator.kt:71 */
   32     47   
}
   33     48   
          49  +
/* AwsJson.kt:152 */
   34     50   
pub fn ser_no_input_and_no_output_input(
   35     51   
    _input: &crate::operation::no_input_and_no_output::NoInputAndNoOutputInput,
   36     52   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          53  +
    /* AwsJson.kt:156 */
   37     54   
    Ok(::aws_smithy_types::body::SdkBody::from("{}"))
          55  +
    /* AwsJson.kt:152 */
   38     56   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_no_input_and_output.rs

@@ -1,1 +34,52 @@
    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_no_input_and_output_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::no_input_and_output::NoInputAndOutputOutput, crate::operation::no_input_and_output::NoInputAndOutputError>
    8     10   
{
          11  +
    /* RustType.kt:516 */
    9     12   
    #[allow(unused_mut)]
          13  +
    /* ProtocolParserGenerator.kt:106 */
   10     14   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   11     15   
        .map_err(crate::operation::no_input_and_output::NoInputAndOutputError::unhandled)?;
          16  +
    /* ProtocolParserGenerator.kt:120 */
   12     17   
    let generic = generic_builder.build();
          18  +
    /* ProtocolParserGenerator.kt:185 */
   13     19   
    Err(crate::operation::no_input_and_output::NoInputAndOutputError::generic(generic))
          20  +
    /* ProtocolParserGenerator.kt:99 */
   14     21   
}
   15     22   
          23  +
/* RustType.kt:516 */
   16     24   
#[allow(clippy::unnecessary_wraps)]
          25  +
/* ProtocolParserGenerator.kt:71 */
   17     26   
pub fn de_no_input_and_output_http_response(
   18     27   
    _response_status: u16,
   19     28   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   20     29   
    _response_body: &[u8],
   21     30   
) -> std::result::Result<crate::operation::no_input_and_output::NoInputAndOutputOutput, crate::operation::no_input_and_output::NoInputAndOutputError>
   22     31   
{
          32  +
    /* ProtocolParserGenerator.kt:77 */
   23     33   
    Ok({
          34  +
        /* RustType.kt:516 */
   24     35   
        #[allow(unused_mut)]
          36  +
        /* ProtocolParserGenerator.kt:240 */
   25     37   
        let mut output = crate::operation::no_input_and_output::builders::NoInputAndOutputOutputBuilder::default();
          38  +
        /* ClientBuilderInstantiator.kt:56 */
   26     39   
        output.build()
          40  +
        /* ProtocolParserGenerator.kt:77 */
   27     41   
    })
          42  +
    /* ProtocolParserGenerator.kt:71 */
   28     43   
}
   29     44   
          45  +
/* AwsJson.kt:152 */
   30     46   
pub fn ser_no_input_and_output_input(
   31     47   
    _input: &crate::operation::no_input_and_output::NoInputAndOutputInput,
   32     48   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          49  +
    /* AwsJson.kt:156 */
   33     50   
    Ok(::aws_smithy_types::body::SdkBody::from("{}"))
          51  +
    /* AwsJson.kt:152 */
   34     52   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_operation_with_defaults.rs

@@ -1,1 +215,399 @@
    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_operation_with_defaults_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::operation_with_defaults::OperationWithDefaultsOutput,
    9     11   
    crate::operation::operation_with_defaults::OperationWithDefaultsError,
   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::operation_with_defaults::OperationWithDefaultsError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:185 */
   15     21   
    Err(crate::operation::operation_with_defaults::OperationWithDefaultsError::generic(generic))
          22  +
    /* ProtocolParserGenerator.kt:99 */
   16     23   
}
   17     24   
          25  +
/* RustType.kt:516 */
   18     26   
#[allow(clippy::unnecessary_wraps)]
          27  +
/* ProtocolParserGenerator.kt:71 */
   19     28   
pub fn de_operation_with_defaults_http_response(
   20     29   
    _response_status: u16,
   21     30   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   22     31   
    _response_body: &[u8],
   23     32   
) -> std::result::Result<
   24     33   
    crate::operation::operation_with_defaults::OperationWithDefaultsOutput,
   25     34   
    crate::operation::operation_with_defaults::OperationWithDefaultsError,
   26     35   
> {
          36  +
    /* ProtocolParserGenerator.kt:77 */
   27     37   
    Ok({
          38  +
        /* RustType.kt:516 */
   28     39   
        #[allow(unused_mut)]
          40  +
        /* ProtocolParserGenerator.kt:240 */
   29     41   
        let mut output = crate::operation::operation_with_defaults::builders::OperationWithDefaultsOutputBuilder::default();
          42  +
        /* ProtocolParserGenerator.kt:247 */
   30     43   
        output = crate::protocol_serde::shape_operation_with_defaults::de_operation_with_defaults(_response_body, output)
   31     44   
            .map_err(crate::operation::operation_with_defaults::OperationWithDefaultsError::unhandled)?;
          45  +
        /* ClientBuilderInstantiator.kt:56 */
   32     46   
        output.build()
          47  +
        /* ProtocolParserGenerator.kt:77 */
   33     48   
    })
          49  +
    /* ProtocolParserGenerator.kt:71 */
   34     50   
}
   35     51   
          52  +
/* JsonSerializerGenerator.kt:287 */
   36     53   
pub fn ser_operation_with_defaults_input(
   37     54   
    input: &crate::operation::operation_with_defaults::OperationWithDefaultsInput,
   38     55   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          56  +
    /* JsonSerializerGenerator.kt:291 */
   39     57   
    let mut out = String::new();
          58  +
    /* JsonSerializerGenerator.kt:292 */
   40     59   
    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
          60  +
    /* JsonSerializerGenerator.kt:375 */
   41     61   
    crate::protocol_serde::shape_operation_with_defaults_input::ser_operation_with_defaults_input_input(&mut object, input)?;
          62  +
    /* JsonSerializerGenerator.kt:295 */
   42     63   
    object.finish();
          64  +
    /* JsonSerializerGenerator.kt:296 */
   43     65   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
          66  +
    /* JsonSerializerGenerator.kt:287 */
   44     67   
}
   45     68   
          69  +
/* JsonParserGenerator.kt:148 */
   46     70   
pub(crate) fn de_operation_with_defaults(
   47     71   
    value: &[u8],
   48     72   
    mut builder: crate::operation::operation_with_defaults::builders::OperationWithDefaultsOutputBuilder,
   49     73   
) -> ::std::result::Result<
   50     74   
    crate::operation::operation_with_defaults::builders::OperationWithDefaultsOutputBuilder,
   51     75   
    ::aws_smithy_json::deserialize::error::DeserializeError,
   52     76   
> {
          77  +
    /* JsonParserGenerator.kt:153 */
   53     78   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
   54     79   
    let tokens = &mut tokens_owned;
   55     80   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
          81  +
    /* JsonParserGenerator.kt:684 */
   56     82   
    loop {
          83  +
        /* JsonParserGenerator.kt:685 */
   57     84   
        match tokens.next().transpose()? {
   58         -
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   59         -
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
          85  +
            /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          86  +
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          87  +
                /* JsonParserGenerator.kt:260 */
          88  +
                match key.to_unescaped()?.as_ref() {
          89  +
                    /* JsonParserGenerator.kt:262 */
   60     90   
                    "defaultString" => {
          91  +
                        /* JsonParserGenerator.kt:265 */
   61     92   
                        builder = builder.set_default_string(
          93  +
                            /* JsonParserGenerator.kt:354 */
   62     94   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   63         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   64         -
                            .transpose()?,
          95  +
                                .map(|s|
          96  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          97  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
          98  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          99  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
   65    100   
                        );
         101  +
                        /* JsonParserGenerator.kt:262 */
   66    102   
                    }
         103  +
                    /* JsonParserGenerator.kt:262 */
   67    104   
                    "defaultBoolean" => {
   68         -
                    builder = builder.set_default_boolean(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
         105  +
                        /* JsonParserGenerator.kt:265 */
         106  +
                        builder = builder.set_default_boolean(
         107  +
                            /* JsonParserGenerator.kt:298 */
         108  +
                            ::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?, /* JsonParserGenerator.kt:265 */
         109  +
                        );
         110  +
                        /* JsonParserGenerator.kt:262 */
   69    111   
                    }
         112  +
                    /* JsonParserGenerator.kt:262 */
   70    113   
                    "defaultList" => {
   71         -
                    builder = builder.set_default_list(crate::protocol_serde::shape_test_string_list::de_test_string_list(tokens)?);
         114  +
                        /* JsonParserGenerator.kt:265 */
         115  +
                        builder = builder.set_default_list(
         116  +
                            /* JsonParserGenerator.kt:451 */
         117  +
                            crate::protocol_serde::shape_test_string_list::de_test_string_list(tokens)?, /* JsonParserGenerator.kt:265 */
         118  +
                        );
         119  +
                        /* JsonParserGenerator.kt:262 */
   72    120   
                    }
         121  +
                    /* JsonParserGenerator.kt:262 */
   73    122   
                    "defaultDocumentMap" => {
   74         -
                    builder = builder.set_default_document_map(Some(::aws_smithy_json::deserialize::token::expect_document(tokens)?));
         123  +
                        /* JsonParserGenerator.kt:265 */
         124  +
                        builder = builder.set_default_document_map(
         125  +
                            /* JsonParserGenerator.kt:319 */
         126  +
                            Some(::aws_smithy_json::deserialize::token::expect_document(tokens)?), /* JsonParserGenerator.kt:265 */
         127  +
                        );
         128  +
                        /* JsonParserGenerator.kt:262 */
   75    129   
                    }
         130  +
                    /* JsonParserGenerator.kt:262 */
   76    131   
                    "defaultDocumentString" => {
   77         -
                    builder = builder.set_default_document_string(Some(::aws_smithy_json::deserialize::token::expect_document(tokens)?));
         132  +
                        /* JsonParserGenerator.kt:265 */
         133  +
                        builder = builder.set_default_document_string(
         134  +
                            /* JsonParserGenerator.kt:319 */
         135  +
                            Some(::aws_smithy_json::deserialize::token::expect_document(tokens)?), /* JsonParserGenerator.kt:265 */
         136  +
                        );
         137  +
                        /* JsonParserGenerator.kt:262 */
   78    138   
                    }
         139  +
                    /* JsonParserGenerator.kt:262 */
   79    140   
                    "defaultDocumentBoolean" => {
   80         -
                    builder = builder.set_default_document_boolean(Some(::aws_smithy_json::deserialize::token::expect_document(tokens)?));
         141  +
                        /* JsonParserGenerator.kt:265 */
         142  +
                        builder = builder.set_default_document_boolean(
         143  +
                            /* JsonParserGenerator.kt:319 */
         144  +
                            Some(::aws_smithy_json::deserialize::token::expect_document(tokens)?), /* JsonParserGenerator.kt:265 */
         145  +
                        );
         146  +
                        /* JsonParserGenerator.kt:262 */
   81    147   
                    }
         148  +
                    /* JsonParserGenerator.kt:262 */
   82    149   
                    "defaultDocumentList" => {
   83         -
                    builder = builder.set_default_document_list(Some(::aws_smithy_json::deserialize::token::expect_document(tokens)?));
         150  +
                        /* JsonParserGenerator.kt:265 */
         151  +
                        builder = builder.set_default_document_list(
         152  +
                            /* JsonParserGenerator.kt:319 */
         153  +
                            Some(::aws_smithy_json::deserialize::token::expect_document(tokens)?), /* JsonParserGenerator.kt:265 */
         154  +
                        );
         155  +
                        /* JsonParserGenerator.kt:262 */
   84    156   
                    }
         157  +
                    /* JsonParserGenerator.kt:262 */
   85    158   
                    "defaultNullDocument" => {
   86         -
                    builder = builder.set_default_null_document(Some(::aws_smithy_json::deserialize::token::expect_document(tokens)?));
         159  +
                        /* JsonParserGenerator.kt:265 */
         160  +
                        builder = builder.set_default_null_document(
         161  +
                            /* JsonParserGenerator.kt:319 */
         162  +
                            Some(::aws_smithy_json::deserialize::token::expect_document(tokens)?), /* JsonParserGenerator.kt:265 */
         163  +
                        );
         164  +
                        /* JsonParserGenerator.kt:262 */
   87    165   
                    }
         166  +
                    /* JsonParserGenerator.kt:262 */
   88    167   
                    "defaultTimestamp" => {
   89         -
                    builder = builder.set_default_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
         168  +
                        /* JsonParserGenerator.kt:265 */
         169  +
                        builder = builder.set_default_timestamp(
         170  +
                            /* JsonParserGenerator.kt:384 */
         171  +
                            ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
   90    172   
                                tokens.next(),
   91    173   
                                ::aws_smithy_types::date_time::Format::EpochSeconds,
   92         -
                    )?);
         174  +
                            )?, /* JsonParserGenerator.kt:265 */
         175  +
                        );
         176  +
                        /* JsonParserGenerator.kt:262 */
   93    177   
                    }
         178  +
                    /* JsonParserGenerator.kt:262 */
   94    179   
                    "defaultBlob" => {
   95         -
                    builder = builder.set_default_blob(::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?);
         180  +
                        /* JsonParserGenerator.kt:265 */
         181  +
                        builder = builder.set_default_blob(
         182  +
                            /* JsonParserGenerator.kt:326 */
         183  +
                            ::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?, /* JsonParserGenerator.kt:265 */
         184  +
                        );
         185  +
                        /* JsonParserGenerator.kt:262 */
   96    186   
                    }
         187  +
                    /* JsonParserGenerator.kt:262 */
   97    188   
                    "defaultByte" => {
         189  +
                        /* JsonParserGenerator.kt:265 */
   98    190   
                        builder = builder.set_default_byte(
         191  +
                            /* JsonParserGenerator.kt:365 */
   99    192   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  100    193   
                                .map(i8::try_from)
  101         -
                            .transpose()?,
         194  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  102    195   
                        );
         196  +
                        /* JsonParserGenerator.kt:262 */
  103    197   
                    }
         198  +
                    /* JsonParserGenerator.kt:262 */
  104    199   
                    "defaultShort" => {
         200  +
                        /* JsonParserGenerator.kt:265 */
  105    201   
                        builder = builder.set_default_short(
         202  +
                            /* JsonParserGenerator.kt:365 */
  106    203   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  107    204   
                                .map(i16::try_from)
  108         -
                            .transpose()?,
         205  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  109    206   
                        );
         207  +
                        /* JsonParserGenerator.kt:262 */
  110    208   
                    }
         209  +
                    /* JsonParserGenerator.kt:262 */
  111    210   
                    "defaultInteger" => {
         211  +
                        /* JsonParserGenerator.kt:265 */
  112    212   
                        builder = builder.set_default_integer(
         213  +
                            /* JsonParserGenerator.kt:365 */
  113    214   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  114    215   
                                .map(i32::try_from)
  115         -
                            .transpose()?,
         216  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  116    217   
                        );
         218  +
                        /* JsonParserGenerator.kt:262 */
  117    219   
                    }
         220  +
                    /* JsonParserGenerator.kt:262 */
  118    221   
                    "defaultLong" => {
         222  +
                        /* JsonParserGenerator.kt:265 */
  119    223   
                        builder = builder.set_default_long(
         224  +
                            /* JsonParserGenerator.kt:365 */
  120    225   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  121    226   
                                .map(i64::try_from)
  122         -
                            .transpose()?,
         227  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  123    228   
                        );
         229  +
                        /* JsonParserGenerator.kt:262 */
  124    230   
                    }
         231  +
                    /* JsonParserGenerator.kt:262 */
  125    232   
                    "defaultFloat" => {
  126         -
                    builder = builder
  127         -
                        .set_default_float(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy()));
         233  +
                        /* JsonParserGenerator.kt:265 */
         234  +
                        builder = builder.set_default_float(
         235  +
                            /* JsonParserGenerator.kt:361 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy())
         236  +
                        /* JsonParserGenerator.kt:265 */);
         237  +
                        /* JsonParserGenerator.kt:262 */
  128    238   
                    }
         239  +
                    /* JsonParserGenerator.kt:262 */
  129    240   
                    "defaultDouble" => {
  130         -
                    builder = builder
  131         -
                        .set_default_double(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy()));
         241  +
                        /* JsonParserGenerator.kt:265 */
         242  +
                        builder = builder.set_default_double(
         243  +
                            /* JsonParserGenerator.kt:363 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy())
         244  +
                        /* JsonParserGenerator.kt:265 */);
         245  +
                        /* JsonParserGenerator.kt:262 */
  132    246   
                    }
         247  +
                    /* JsonParserGenerator.kt:262 */
  133    248   
                    "defaultMap" => {
  134         -
                    builder = builder.set_default_map(crate::protocol_serde::shape_test_string_map::de_test_string_map(tokens)?);
         249  +
                        /* JsonParserGenerator.kt:265 */
         250  +
                        builder = builder.set_default_map(
         251  +
                            /* JsonParserGenerator.kt:509 */
         252  +
                            crate::protocol_serde::shape_test_string_map::de_test_string_map(tokens)?, /* JsonParserGenerator.kt:265 */
         253  +
                        );
         254  +
                        /* JsonParserGenerator.kt:262 */
  135    255   
                    }
         256  +
                    /* JsonParserGenerator.kt:262 */
  136    257   
                    "defaultEnum" => {
         258  +
                        /* JsonParserGenerator.kt:265 */
  137    259   
                        builder = builder.set_default_enum(
         260  +
                            /* JsonParserGenerator.kt:354 */
  138    261   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  139         -
                            .map(|s| s.to_unescaped().map(|u| crate::types::TestEnum::from(u.as_ref())))
  140         -
                            .transpose()?,
         262  +
                                .map(|s|
         263  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         264  +
                                    /* JsonParserGenerator.kt:345 */crate::types::TestEnum::from(u.as_ref())
         265  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         266  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  141    267   
                        );
         268  +
                        /* JsonParserGenerator.kt:262 */
  142    269   
                    }
         270  +
                    /* JsonParserGenerator.kt:262 */
  143    271   
                    "defaultIntEnum" => {
         272  +
                        /* JsonParserGenerator.kt:265 */
  144    273   
                        builder = builder.set_default_int_enum(
         274  +
                            /* JsonParserGenerator.kt:365 */
  145    275   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  146    276   
                                .map(i32::try_from)
  147         -
                            .transpose()?,
         277  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  148    278   
                        );
         279  +
                        /* JsonParserGenerator.kt:262 */
  149    280   
                    }
         281  +
                    /* JsonParserGenerator.kt:262 */
  150    282   
                    "emptyString" => {
         283  +
                        /* JsonParserGenerator.kt:265 */
  151    284   
                        builder = builder.set_empty_string(
         285  +
                            /* JsonParserGenerator.kt:354 */
  152    286   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  153         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
  154         -
                            .transpose()?,
         287  +
                                .map(|s|
         288  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         289  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
         290  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         291  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  155    292   
                        );
         293  +
                        /* JsonParserGenerator.kt:262 */
  156    294   
                    }
         295  +
                    /* JsonParserGenerator.kt:262 */
  157    296   
                    "falseBoolean" => {
  158         -
                    builder = builder.set_false_boolean(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
         297  +
                        /* JsonParserGenerator.kt:265 */
         298  +
                        builder = builder.set_false_boolean(
         299  +
                            /* JsonParserGenerator.kt:298 */
         300  +
                            ::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?, /* JsonParserGenerator.kt:265 */
         301  +
                        );
         302  +
                        /* JsonParserGenerator.kt:262 */
  159    303   
                    }
         304  +
                    /* JsonParserGenerator.kt:262 */
  160    305   
                    "emptyBlob" => {
  161         -
                    builder = builder.set_empty_blob(::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?);
         306  +
                        /* JsonParserGenerator.kt:265 */
         307  +
                        builder = builder.set_empty_blob(
         308  +
                            /* JsonParserGenerator.kt:326 */
         309  +
                            ::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?, /* JsonParserGenerator.kt:265 */
         310  +
                        );
         311  +
                        /* JsonParserGenerator.kt:262 */
  162    312   
                    }
         313  +
                    /* JsonParserGenerator.kt:262 */
  163    314   
                    "zeroByte" => {
         315  +
                        /* JsonParserGenerator.kt:265 */
  164    316   
                        builder = builder.set_zero_byte(
         317  +
                            /* JsonParserGenerator.kt:365 */
  165    318   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  166    319   
                                .map(i8::try_from)
  167         -
                            .transpose()?,
         320  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  168    321   
                        );
         322  +
                        /* JsonParserGenerator.kt:262 */
  169    323   
                    }
         324  +
                    /* JsonParserGenerator.kt:262 */
  170    325   
                    "zeroShort" => {
         326  +
                        /* JsonParserGenerator.kt:265 */
  171    327   
                        builder = builder.set_zero_short(
         328  +
                            /* JsonParserGenerator.kt:365 */
  172    329   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  173    330   
                                .map(i16::try_from)
  174         -
                            .transpose()?,
         331  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  175    332   
                        );
         333  +
                        /* JsonParserGenerator.kt:262 */
  176    334   
                    }
         335  +
                    /* JsonParserGenerator.kt:262 */
  177    336   
                    "zeroInteger" => {
         337  +
                        /* JsonParserGenerator.kt:265 */
  178    338   
                        builder = builder.set_zero_integer(
         339  +
                            /* JsonParserGenerator.kt:365 */
  179    340   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  180    341   
                                .map(i32::try_from)
  181         -
                            .transpose()?,
         342  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  182    343   
                        );
         344  +
                        /* JsonParserGenerator.kt:262 */
  183    345   
                    }
         346  +
                    /* JsonParserGenerator.kt:262 */
  184    347   
                    "zeroLong" => {
         348  +
                        /* JsonParserGenerator.kt:265 */
  185    349   
                        builder = builder.set_zero_long(
         350  +
                            /* JsonParserGenerator.kt:365 */
  186    351   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  187    352   
                                .map(i64::try_from)
  188         -
                            .transpose()?,
         353  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  189    354   
                        );
         355  +
                        /* JsonParserGenerator.kt:262 */
  190    356   
                    }
         357  +
                    /* JsonParserGenerator.kt:262 */
  191    358   
                    "zeroFloat" => {
  192         -
                    builder = builder
  193         -
                        .set_zero_float(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy()));
         359  +
                        /* JsonParserGenerator.kt:265 */
         360  +
                        builder = builder.set_zero_float(
         361  +
                            /* JsonParserGenerator.kt:361 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy())
         362  +
                        /* JsonParserGenerator.kt:265 */);
         363  +
                        /* JsonParserGenerator.kt:262 */
  194    364   
                    }
         365  +
                    /* JsonParserGenerator.kt:262 */
  195    366   
                    "zeroDouble" => {
  196         -
                    builder = builder
  197         -
                        .set_zero_double(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy()));
         367  +
                        /* JsonParserGenerator.kt:265 */
         368  +
                        builder = builder.set_zero_double(
         369  +
                            /* JsonParserGenerator.kt:363 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy())
         370  +
                        /* JsonParserGenerator.kt:265 */);
         371  +
                        /* JsonParserGenerator.kt:262 */
  198    372   
                    }
  199         -
                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
  200         -
            },
         373  +
                    /* JsonParserGenerator.kt:290 */
         374  +
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
         375  +
                }
         376  +
                /* JsonParserGenerator.kt:686 */
         377  +
            }
         378  +
            /* JsonParserGenerator.kt:695 */
  201    379   
            other => {
  202    380   
                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  203    381   
                    "expected object key or end object, found: {:?}",
  204    382   
                    other
  205    383   
                )))
         384  +
            } /* JsonParserGenerator.kt:685 */
  206    385   
        }
         386  +
        /* JsonParserGenerator.kt:684 */
  207    387   
    }
  208         -
    }
         388  +
    /* JsonParserGenerator.kt:250 */
  209    389   
    if tokens.next().is_some() {
         390  +
        /* JsonParserGenerator.kt:251 */
  210    391   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
  211    392   
            "found more JSON tokens after completing parsing",
  212    393   
        ));
         394  +
        /* JsonParserGenerator.kt:250 */
  213    395   
    }
         396  +
    /* JsonParserGenerator.kt:163 */
  214    397   
    Ok(builder)
         398  +
    /* JsonParserGenerator.kt:148 */
  215    399   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_operation_with_defaults_input.rs

@@ -1,1 +28,49 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
    2      3   
pub fn ser_operation_with_defaults_input_input(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::operation::operation_with_defaults::OperationWithDefaultsInput,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.defaults {
           9  +
        /* JsonSerializerGenerator.kt:495 */
    7     10   
        #[allow(unused_mut)]
          11  +
        /* JsonSerializerGenerator.kt:496 */
    8     12   
        let mut object_2 = object.key("defaults").start_object();
          13  +
        /* JsonSerializerGenerator.kt:375 */
    9     14   
        crate::protocol_serde::shape_defaults::ser_defaults(&mut object_2, var_1)?;
          15  +
        /* JsonSerializerGenerator.kt:515 */
   10     16   
        object_2.finish();
          17  +
        /* JsonSerializerGenerator.kt:382 */
   11     18   
    }
          19  +
    /* JsonSerializerGenerator.kt:382 */
   12     20   
    if let Some(var_3) = &input.client_optional_defaults {
          21  +
        /* JsonSerializerGenerator.kt:495 */
   13     22   
        #[allow(unused_mut)]
          23  +
        /* JsonSerializerGenerator.kt:496 */
   14     24   
        let mut object_4 = object.key("clientOptionalDefaults").start_object();
          25  +
        /* JsonSerializerGenerator.kt:375 */
   15     26   
        crate::protocol_serde::shape_client_optional_defaults::ser_client_optional_defaults(&mut object_4, var_3)?;
          27  +
        /* JsonSerializerGenerator.kt:515 */
   16     28   
        object_4.finish();
          29  +
        /* JsonSerializerGenerator.kt:382 */
   17     30   
    }
          31  +
    /* JsonSerializerGenerator.kt:382 */
   18     32   
    if let Some(var_5) = &input.top_level_default {
          33  +
        /* JsonSerializerGenerator.kt:423 */
   19     34   
        object.key("topLevelDefault").string(var_5.as_str());
          35  +
        /* JsonSerializerGenerator.kt:382 */
   20     36   
    }
          37  +
    /* JsonSerializerGenerator.kt:382 */
   21     38   
    if let Some(var_6) = &input.other_top_level_default {
          39  +
        /* JsonSerializerGenerator.kt:432 */
   22     40   
        object.key("otherTopLevelDefault").number(
   23     41   
            #[allow(clippy::useless_conversion)]
   24     42   
            ::aws_smithy_types::Number::NegInt((*var_6).into()),
   25     43   
        );
          44  +
        /* JsonSerializerGenerator.kt:382 */
   26     45   
    }
          46  +
    /* JsonSerializerGenerator.kt:372 */
   27     47   
    Ok(())
          48  +
    /* JsonSerializerGenerator.kt:358 */
   28     49   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_operation_with_nested_structure.rs

@@ -1,1 +87,144 @@
    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_operation_with_nested_structure_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::operation_with_nested_structure::OperationWithNestedStructureOutput,
    9     11   
    crate::operation::operation_with_nested_structure::OperationWithNestedStructureError,
   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::operation_with_nested_structure::OperationWithNestedStructureError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:185 */
   15     21   
    Err(crate::operation::operation_with_nested_structure::OperationWithNestedStructureError::generic(generic))
          22  +
    /* ProtocolParserGenerator.kt:99 */
   16     23   
}
   17     24   
          25  +
/* RustType.kt:516 */
   18     26   
#[allow(clippy::unnecessary_wraps)]
          27  +
/* ProtocolParserGenerator.kt:71 */
   19     28   
pub fn de_operation_with_nested_structure_http_response(
   20     29   
    _response_status: u16,
   21     30   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   22     31   
    _response_body: &[u8],
   23     32   
) -> std::result::Result<
   24     33   
    crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput,
   25     34   
    crate::operation::operation_with_nested_structure::OperationWithNestedStructureError,
   26     35   
> {
          36  +
    /* ProtocolParserGenerator.kt:77 */
   27     37   
    Ok({
          38  +
        /* RustType.kt:516 */
   28     39   
        #[allow(unused_mut)]
          40  +
        /* ProtocolParserGenerator.kt:240 */
   29     41   
        let mut output = crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureOutputBuilder::default();
          42  +
        /* ProtocolParserGenerator.kt:247 */
   30     43   
        output = crate::protocol_serde::shape_operation_with_nested_structure::de_operation_with_nested_structure(_response_body, output)
   31     44   
            .map_err(crate::operation::operation_with_nested_structure::OperationWithNestedStructureError::unhandled)?;
          45  +
        /* ClientBuilderInstantiator.kt:46 */
   32     46   
        crate::serde_util::operation_with_nested_structure_output_output_correct_errors(output)
   33     47   
            .build()
   34     48   
            .map_err(crate::operation::operation_with_nested_structure::OperationWithNestedStructureError::unhandled)?
          49  +
        /* ProtocolParserGenerator.kt:77 */
   35     50   
    })
          51  +
    /* ProtocolParserGenerator.kt:71 */
   36     52   
}
   37     53   
          54  +
/* JsonSerializerGenerator.kt:287 */
   38     55   
pub fn ser_operation_with_nested_structure_input(
   39     56   
    input: &crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput,
   40     57   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          58  +
    /* JsonSerializerGenerator.kt:291 */
   41     59   
    let mut out = String::new();
          60  +
    /* JsonSerializerGenerator.kt:292 */
   42     61   
    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
          62  +
    /* JsonSerializerGenerator.kt:375 */
   43     63   
    crate::protocol_serde::shape_operation_with_nested_structure_input::ser_operation_with_nested_structure_input_input(&mut object, input)?;
          64  +
    /* JsonSerializerGenerator.kt:295 */
   44     65   
    object.finish();
          66  +
    /* JsonSerializerGenerator.kt:296 */
   45     67   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
          68  +
    /* JsonSerializerGenerator.kt:287 */
   46     69   
}
   47     70   
          71  +
/* JsonParserGenerator.kt:148 */
   48     72   
pub(crate) fn de_operation_with_nested_structure(
   49     73   
    value: &[u8],
   50     74   
    mut builder: crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureOutputBuilder,
   51     75   
) -> ::std::result::Result<
   52     76   
    crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureOutputBuilder,
   53     77   
    ::aws_smithy_json::deserialize::error::DeserializeError,
   54     78   
> {
          79  +
    /* JsonParserGenerator.kt:153 */
   55     80   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
   56     81   
    let tokens = &mut tokens_owned;
   57     82   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
          83  +
    /* JsonParserGenerator.kt:684 */
   58     84   
    loop {
          85  +
        /* JsonParserGenerator.kt:685 */
   59     86   
        match tokens.next().transpose()? {
   60         -
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   61         -
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
          87  +
            /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          88  +
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          89  +
                /* JsonParserGenerator.kt:260 */
          90  +
                match key.to_unescaped()?.as_ref() {
          91  +
                    /* JsonParserGenerator.kt:262 */
   62     92   
                    "dialog" => {
   63         -
                    builder = builder.set_dialog(crate::protocol_serde::shape_dialog::de_dialog(tokens)?);
          93  +
                        /* JsonParserGenerator.kt:265 */
          94  +
                        builder = builder.set_dialog(
          95  +
                            /* JsonParserGenerator.kt:544 */
          96  +
                            crate::protocol_serde::shape_dialog::de_dialog(tokens)?, /* JsonParserGenerator.kt:265 */
          97  +
                        );
          98  +
                        /* JsonParserGenerator.kt:262 */
   64     99   
                    }
         100  +
                    /* JsonParserGenerator.kt:262 */
   65    101   
                    "dialogList" => {
   66         -
                    builder = builder.set_dialog_list(crate::protocol_serde::shape_dialog_list::de_dialog_list(tokens)?);
         102  +
                        /* JsonParserGenerator.kt:265 */
         103  +
                        builder = builder.set_dialog_list(
         104  +
                            /* JsonParserGenerator.kt:451 */
         105  +
                            crate::protocol_serde::shape_dialog_list::de_dialog_list(tokens)?, /* JsonParserGenerator.kt:265 */
         106  +
                        );
         107  +
                        /* JsonParserGenerator.kt:262 */
   67    108   
                    }
         109  +
                    /* JsonParserGenerator.kt:262 */
   68    110   
                    "dialogMap" => {
   69         -
                    builder = builder.set_dialog_map(crate::protocol_serde::shape_dialog_map::de_dialog_map(tokens)?);
         111  +
                        /* JsonParserGenerator.kt:265 */
         112  +
                        builder = builder.set_dialog_map(
         113  +
                            /* JsonParserGenerator.kt:509 */
         114  +
                            crate::protocol_serde::shape_dialog_map::de_dialog_map(tokens)?, /* JsonParserGenerator.kt:265 */
         115  +
                        );
         116  +
                        /* JsonParserGenerator.kt:262 */
   70    117   
                    }
   71         -
                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   72         -
            },
         118  +
                    /* JsonParserGenerator.kt:290 */
         119  +
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
         120  +
                }
         121  +
                /* JsonParserGenerator.kt:686 */
         122  +
            }
         123  +
            /* JsonParserGenerator.kt:695 */
   73    124   
            other => {
   74    125   
                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   75    126   
                    "expected object key or end object, found: {:?}",
   76    127   
                    other
   77    128   
                )))
         129  +
            } /* JsonParserGenerator.kt:685 */
   78    130   
        }
         131  +
        /* JsonParserGenerator.kt:684 */
   79    132   
    }
   80         -
    }
         133  +
    /* JsonParserGenerator.kt:250 */
   81    134   
    if tokens.next().is_some() {
         135  +
        /* JsonParserGenerator.kt:251 */
   82    136   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   83    137   
            "found more JSON tokens after completing parsing",
   84    138   
        ));
         139  +
        /* JsonParserGenerator.kt:250 */
   85    140   
    }
         141  +
    /* JsonParserGenerator.kt:163 */
   86    142   
    Ok(builder)
         143  +
    /* JsonParserGenerator.kt:148 */
   87    144   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_operation_with_nested_structure_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_operation_with_nested_structure_input_input(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.top_level {
           9  +
        /* JsonSerializerGenerator.kt:495 */
    7     10   
        #[allow(unused_mut)]
          11  +
        /* JsonSerializerGenerator.kt:496 */
    8     12   
        let mut object_2 = object.key("topLevel").start_object();
          13  +
        /* JsonSerializerGenerator.kt:375 */
    9     14   
        crate::protocol_serde::shape_top_level::ser_top_level(&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_rpc10/rust-client-codegen/src/protocol_serde/shape_operation_with_required_members.rs

@@ -1,1 +135,231 @@
    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_operation_with_required_members_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::operation_with_required_members::OperationWithRequiredMembersOutput,
    9     11   
    crate::operation::operation_with_required_members::OperationWithRequiredMembersError,
   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::operation_with_required_members::OperationWithRequiredMembersError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:185 */
   15     21   
    Err(crate::operation::operation_with_required_members::OperationWithRequiredMembersError::generic(generic))
          22  +
    /* ProtocolParserGenerator.kt:99 */
   16     23   
}
   17     24   
          25  +
/* RustType.kt:516 */
   18     26   
#[allow(clippy::unnecessary_wraps)]
          27  +
/* ProtocolParserGenerator.kt:71 */
   19     28   
pub fn de_operation_with_required_members_http_response(
   20     29   
    _response_status: u16,
   21     30   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   22     31   
    _response_body: &[u8],
   23     32   
) -> std::result::Result<
   24     33   
    crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput,
   25     34   
    crate::operation::operation_with_required_members::OperationWithRequiredMembersError,
   26     35   
> {
          36  +
    /* ProtocolParserGenerator.kt:77 */
   27     37   
    Ok({
          38  +
        /* RustType.kt:516 */
   28     39   
        #[allow(unused_mut)]
          40  +
        /* ProtocolParserGenerator.kt:240 */
   29     41   
        let mut output = crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::default();
          42  +
        /* ProtocolParserGenerator.kt:247 */
   30     43   
        output = crate::protocol_serde::shape_operation_with_required_members::de_operation_with_required_members(_response_body, output)
   31     44   
            .map_err(crate::operation::operation_with_required_members::OperationWithRequiredMembersError::unhandled)?;
          45  +
        /* ClientBuilderInstantiator.kt:46 */
   32     46   
        crate::serde_util::operation_with_required_members_output_output_correct_errors(output)
   33     47   
            .build()
   34     48   
            .map_err(crate::operation::operation_with_required_members::OperationWithRequiredMembersError::unhandled)?
          49  +
        /* ProtocolParserGenerator.kt:77 */
   35     50   
    })
          51  +
    /* ProtocolParserGenerator.kt:71 */
   36     52   
}
   37     53   
          54  +
/* AwsJson.kt:152 */
   38     55   
pub fn ser_operation_with_required_members_input(
   39     56   
    _input: &crate::operation::operation_with_required_members::OperationWithRequiredMembersInput,
   40     57   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          58  +
    /* AwsJson.kt:156 */
   41     59   
    Ok(::aws_smithy_types::body::SdkBody::from("{}"))
          60  +
    /* AwsJson.kt:152 */
   42     61   
}
   43     62   
          63  +
/* JsonParserGenerator.kt:148 */
   44     64   
pub(crate) fn de_operation_with_required_members(
   45     65   
    value: &[u8],
   46     66   
    mut builder: crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder,
   47     67   
) -> ::std::result::Result<
   48     68   
    crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder,
   49     69   
    ::aws_smithy_json::deserialize::error::DeserializeError,
   50     70   
> {
          71  +
    /* JsonParserGenerator.kt:153 */
   51     72   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
   52     73   
    let tokens = &mut tokens_owned;
   53     74   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
          75  +
    /* JsonParserGenerator.kt:684 */
   54     76   
    loop {
          77  +
        /* JsonParserGenerator.kt:685 */
   55     78   
        match tokens.next().transpose()? {
   56         -
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   57         -
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
          79  +
            /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          80  +
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          81  +
                /* JsonParserGenerator.kt:260 */
          82  +
                match key.to_unescaped()?.as_ref() {
          83  +
                    /* JsonParserGenerator.kt:262 */
   58     84   
                    "requiredString" => {
          85  +
                        /* JsonParserGenerator.kt:265 */
   59     86   
                        builder = builder.set_required_string(
          87  +
                            /* JsonParserGenerator.kt:354 */
   60     88   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   61         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   62         -
                            .transpose()?,
          89  +
                                .map(|s|
          90  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          91  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
          92  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          93  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
   63     94   
                        );
          95  +
                        /* JsonParserGenerator.kt:262 */
   64     96   
                    }
          97  +
                    /* JsonParserGenerator.kt:262 */
   65     98   
                    "requiredBoolean" => {
   66         -
                    builder = builder.set_required_boolean(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
          99  +
                        /* JsonParserGenerator.kt:265 */
         100  +
                        builder = builder.set_required_boolean(
         101  +
                            /* JsonParserGenerator.kt:298 */
         102  +
                            ::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?, /* JsonParserGenerator.kt:265 */
         103  +
                        );
         104  +
                        /* JsonParserGenerator.kt:262 */
   67    105   
                    }
         106  +
                    /* JsonParserGenerator.kt:262 */
   68    107   
                    "requiredList" => {
   69         -
                    builder = builder.set_required_list(crate::protocol_serde::shape_required_string_list::de_required_string_list(tokens)?);
         108  +
                        /* JsonParserGenerator.kt:265 */
         109  +
                        builder = builder.set_required_list(
         110  +
                            /* JsonParserGenerator.kt:451 */
         111  +
                            crate::protocol_serde::shape_required_string_list::de_required_string_list(tokens)?, /* JsonParserGenerator.kt:265 */
         112  +
                        );
         113  +
                        /* JsonParserGenerator.kt:262 */
   70    114   
                    }
         115  +
                    /* JsonParserGenerator.kt:262 */
   71    116   
                    "requiredTimestamp" => {
   72         -
                    builder = builder.set_required_timestamp(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
         117  +
                        /* JsonParserGenerator.kt:265 */
         118  +
                        builder = builder.set_required_timestamp(
         119  +
                            /* JsonParserGenerator.kt:384 */
         120  +
                            ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
   73    121   
                                tokens.next(),
   74    122   
                                ::aws_smithy_types::date_time::Format::EpochSeconds,
   75         -
                    )?);
         123  +
                            )?, /* JsonParserGenerator.kt:265 */
         124  +
                        );
         125  +
                        /* JsonParserGenerator.kt:262 */
   76    126   
                    }
         127  +
                    /* JsonParserGenerator.kt:262 */
   77    128   
                    "requiredBlob" => {
   78         -
                    builder = builder.set_required_blob(::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?);
         129  +
                        /* JsonParserGenerator.kt:265 */
         130  +
                        builder = builder.set_required_blob(
         131  +
                            /* JsonParserGenerator.kt:326 */
         132  +
                            ::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?, /* JsonParserGenerator.kt:265 */
         133  +
                        );
         134  +
                        /* JsonParserGenerator.kt:262 */
   79    135   
                    }
         136  +
                    /* JsonParserGenerator.kt:262 */
   80    137   
                    "requiredByte" => {
         138  +
                        /* JsonParserGenerator.kt:265 */
   81    139   
                        builder = builder.set_required_byte(
         140  +
                            /* JsonParserGenerator.kt:365 */
   82    141   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
   83    142   
                                .map(i8::try_from)
   84         -
                            .transpose()?,
         143  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
   85    144   
                        );
         145  +
                        /* JsonParserGenerator.kt:262 */
   86    146   
                    }
         147  +
                    /* JsonParserGenerator.kt:262 */
   87    148   
                    "requiredShort" => {
         149  +
                        /* JsonParserGenerator.kt:265 */
   88    150   
                        builder = builder.set_required_short(
         151  +
                            /* JsonParserGenerator.kt:365 */
   89    152   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
   90    153   
                                .map(i16::try_from)
   91         -
                            .transpose()?,
         154  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
   92    155   
                        );
         156  +
                        /* JsonParserGenerator.kt:262 */
   93    157   
                    }
         158  +
                    /* JsonParserGenerator.kt:262 */
   94    159   
                    "requiredInteger" => {
         160  +
                        /* JsonParserGenerator.kt:265 */
   95    161   
                        builder = builder.set_required_integer(
         162  +
                            /* JsonParserGenerator.kt:365 */
   96    163   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
   97    164   
                                .map(i32::try_from)
   98         -
                            .transpose()?,
         165  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
   99    166   
                        );
         167  +
                        /* JsonParserGenerator.kt:262 */
  100    168   
                    }
         169  +
                    /* JsonParserGenerator.kt:262 */
  101    170   
                    "requiredLong" => {
         171  +
                        /* JsonParserGenerator.kt:265 */
  102    172   
                        builder = builder.set_required_long(
         173  +
                            /* JsonParserGenerator.kt:365 */
  103    174   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  104    175   
                                .map(i64::try_from)
  105         -
                            .transpose()?,
         176  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  106    177   
                        );
         178  +
                        /* JsonParserGenerator.kt:262 */
  107    179   
                    }
         180  +
                    /* JsonParserGenerator.kt:262 */
  108    181   
                    "requiredFloat" => {
  109         -
                    builder = builder
  110         -
                        .set_required_float(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy()));
         182  +
                        /* JsonParserGenerator.kt:265 */
         183  +
                        builder = builder.set_required_float(
         184  +
                            /* JsonParserGenerator.kt:361 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy())
         185  +
                        /* JsonParserGenerator.kt:265 */);
         186  +
                        /* JsonParserGenerator.kt:262 */
  111    187   
                    }
         188  +
                    /* JsonParserGenerator.kt:262 */
  112    189   
                    "requiredDouble" => {
  113         -
                    builder = builder
  114         -
                        .set_required_double(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy()));
         190  +
                        /* JsonParserGenerator.kt:265 */
         191  +
                        builder = builder.set_required_double(
         192  +
                            /* JsonParserGenerator.kt:363 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy())
         193  +
                        /* JsonParserGenerator.kt:265 */);
         194  +
                        /* JsonParserGenerator.kt:262 */
  115    195   
                    }
         196  +
                    /* JsonParserGenerator.kt:262 */
  116    197   
                    "requiredMap" => {
  117         -
                    builder = builder.set_required_map(crate::protocol_serde::shape_required_string_map::de_required_string_map(tokens)?);
         198  +
                        /* JsonParserGenerator.kt:265 */
         199  +
                        builder = builder.set_required_map(
         200  +
                            /* JsonParserGenerator.kt:509 */
         201  +
                            crate::protocol_serde::shape_required_string_map::de_required_string_map(tokens)?, /* JsonParserGenerator.kt:265 */
         202  +
                        );
         203  +
                        /* JsonParserGenerator.kt:262 */
         204  +
                    }
         205  +
                    /* JsonParserGenerator.kt:290 */
         206  +
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
  118    207   
                }
  119         -
                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
  120         -
            },
         208  +
                /* JsonParserGenerator.kt:686 */
         209  +
            }
         210  +
            /* JsonParserGenerator.kt:695 */
  121    211   
            other => {
  122    212   
                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  123    213   
                    "expected object key or end object, found: {:?}",
  124    214   
                    other
  125    215   
                )))
         216  +
            } /* JsonParserGenerator.kt:685 */
  126    217   
        }
         218  +
        /* JsonParserGenerator.kt:684 */
  127    219   
    }
  128         -
    }
         220  +
    /* JsonParserGenerator.kt:250 */
  129    221   
    if tokens.next().is_some() {
         222  +
        /* JsonParserGenerator.kt:251 */
  130    223   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
  131    224   
            "found more JSON tokens after completing parsing",
  132    225   
        ));
         226  +
        /* JsonParserGenerator.kt:250 */
  133    227   
    }
         228  +
    /* JsonParserGenerator.kt:163 */
  134    229   
    Ok(builder)
         230  +
    /* JsonParserGenerator.kt:148 */
  135    231   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_put_with_content_encoding.rs

@@ -1,1 +42,64 @@
    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_put_with_content_encoding_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::put_with_content_encoding::PutWithContentEncodingOutput,
    9     11   
    crate::operation::put_with_content_encoding::PutWithContentEncodingError,
   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::put_with_content_encoding::PutWithContentEncodingError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:185 */
   15     21   
    Err(crate::operation::put_with_content_encoding::PutWithContentEncodingError::generic(generic))
          22  +
    /* ProtocolParserGenerator.kt:99 */
   16     23   
}
   17     24   
          25  +
/* RustType.kt:516 */
   18     26   
#[allow(clippy::unnecessary_wraps)]
          27  +
/* ProtocolParserGenerator.kt:71 */
   19     28   
pub fn de_put_with_content_encoding_http_response(
   20     29   
    _response_status: u16,
   21     30   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   22     31   
    _response_body: &[u8],
   23     32   
) -> std::result::Result<
   24     33   
    crate::operation::put_with_content_encoding::PutWithContentEncodingOutput,
   25     34   
    crate::operation::put_with_content_encoding::PutWithContentEncodingError,
   26     35   
> {
          36  +
    /* ProtocolParserGenerator.kt:77 */
   27     37   
    Ok({
          38  +
        /* RustType.kt:516 */
   28     39   
        #[allow(unused_mut)]
          40  +
        /* ProtocolParserGenerator.kt:240 */
   29     41   
        let mut output = crate::operation::put_with_content_encoding::builders::PutWithContentEncodingOutputBuilder::default();
          42  +
        /* ClientBuilderInstantiator.kt:56 */
   30     43   
        output.build()
          44  +
        /* ProtocolParserGenerator.kt:77 */
   31     45   
    })
          46  +
    /* ProtocolParserGenerator.kt:71 */
   32     47   
}
   33     48   
          49  +
/* JsonSerializerGenerator.kt:287 */
   34     50   
pub fn ser_put_with_content_encoding_input(
   35     51   
    input: &crate::operation::put_with_content_encoding::PutWithContentEncodingInput,
   36     52   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          53  +
    /* JsonSerializerGenerator.kt:291 */
   37     54   
    let mut out = String::new();
          55  +
    /* JsonSerializerGenerator.kt:292 */
   38     56   
    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
          57  +
    /* JsonSerializerGenerator.kt:375 */
   39     58   
    crate::protocol_serde::shape_put_with_content_encoding_input::ser_put_with_content_encoding_input_input(&mut object, input)?;
          59  +
    /* JsonSerializerGenerator.kt:295 */
   40     60   
    object.finish();
          61  +
    /* JsonSerializerGenerator.kt:296 */
   41     62   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
          63  +
    /* JsonSerializerGenerator.kt:287 */
   42     64   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_put_with_content_encoding_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_put_with_content_encoding_input_input(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::operation::put_with_content_encoding::PutWithContentEncodingInput,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.encoding {
           9  +
        /* JsonSerializerGenerator.kt:423 */
    7     10   
        object.key("encoding").string(var_1.as_str());
          11  +
        /* JsonSerializerGenerator.kt:382 */
    8     12   
    }
          13  +
    /* JsonSerializerGenerator.kt:382 */
    9     14   
    if let Some(var_2) = &input.data {
          15  +
        /* JsonSerializerGenerator.kt:423 */
   10     16   
        object.key("data").string(var_2.as_str());
          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_rpc10/rust-client-codegen/src/protocol_serde/shape_required_string_list.rs

@@ -1,1 +34,59 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:398 */
    2      3   
pub(crate) fn de_required_string_list<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<Option<::std::vec::Vec<::std::string::String>>, ::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::StartArray { .. }) => {
          13  +
            /* JsonParserGenerator.kt:407 */
   11     14   
            let mut items = Vec::new();
          15  +
            /* JsonParserGenerator.kt:408 */
   12     16   
            loop {
          17  +
                /* JsonParserGenerator.kt:409 */
   13     18   
                match tokens.peek() {
          19  +
                    /* JsonParserGenerator.kt:410 */
   14     20   
                    Some(Ok(::aws_smithy_json::deserialize::Token::EndArray { .. })) => {
          21  +
                        /* JsonParserGenerator.kt:411 */
   15     22   
                        tokens.next().transpose().unwrap();
   16     23   
                        break;
          24  +
                        /* JsonParserGenerator.kt:410 */
   17     25   
                    }
          26  +
                    /* JsonParserGenerator.kt:413 */
   18     27   
                    _ => {
   19         -
                        let value = ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   20         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   21         -
                            .transpose()?;
          28  +
                        /* JsonParserGenerator.kt:419 */
          29  +
                        let value =
          30  +
                            /* JsonParserGenerator.kt:354 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
          31  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          32  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
          33  +
                                /* JsonParserGenerator.kt:339 */)
          34  +
                            /* JsonParserGenerator.kt:354 */).transpose()?
          35  +
                        /* JsonParserGenerator.kt:419 */;
          36  +
                        /* JsonParserGenerator.kt:422 */
   22     37   
                        if let Some(value) = value {
   23     38   
                            items.push(value);
   24     39   
                        }
          40  +
                        /* JsonParserGenerator.kt:413 */
          41  +
                    } /* JsonParserGenerator.kt:409 */
   25     42   
                }
          43  +
                /* JsonParserGenerator.kt:408 */
   26     44   
            }
   27         -
            }
          45  +
            /* JsonParserGenerator.kt:446 */
   28     46   
            Ok(Some(items))
          47  +
            /* JsonParserGenerator.kt:713 */
   29     48   
        }
   30         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          49  +
        /* JsonParserGenerator.kt:722 */
          50  +
        _ => {
          51  +
            /* JsonParserGenerator.kt:723 */
          52  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   31     53   
                "expected start array or null",
   32         -
        )),
          54  +
            ))
          55  +
            /* JsonParserGenerator.kt:722 */
          56  +
        } /* JsonParserGenerator.kt:712 */
   33     57   
    }
          58  +
    /* JsonParserGenerator.kt:398 */
   34     59   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_required_string_map.rs

@@ -1,1 +41,68 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:460 */
    2      3   
pub(crate) fn de_required_string_map<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<
    5      6   
    Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    6      7   
    ::aws_smithy_json::deserialize::error::DeserializeError,
    7      8   
>
    8      9   
where
    9     10   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
   10     11   
{
          12  +
    /* JsonParserGenerator.kt:712 */
   11     13   
    match tokens.next().transpose()? {
   12         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          14  +
        /* JsonParserGenerator.kt:713 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   13     15   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          16  +
            /* JsonParserGenerator.kt:469 */
   14     17   
            let mut map = ::std::collections::HashMap::new();
          18  +
            /* JsonParserGenerator.kt:684 */
   15     19   
            loop {
          20  +
                /* JsonParserGenerator.kt:685 */
   16     21   
                match tokens.next().transpose()? {
   17         -
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          22  +
                    /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   18     23   
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
   19         -
                        let key = key.to_unescaped().map(|u| u.into_owned())?;
   20         -
                        let value = ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   21         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   22         -
                            .transpose()?;
          24  +
                        /* JsonParserGenerator.kt:471 */
          25  +
                        let key =
          26  +
                            /* JsonParserGenerator.kt:339 */key.to_unescaped().map(|u|
          27  +
                                /* JsonParserGenerator.kt:348 */u.into_owned()
          28  +
                            /* JsonParserGenerator.kt:339 */)
          29  +
                        /* JsonParserGenerator.kt:471 */?;
          30  +
                        /* JsonParserGenerator.kt:474 */
          31  +
                        let value =
          32  +
                            /* JsonParserGenerator.kt:354 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
          33  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          34  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
          35  +
                                /* JsonParserGenerator.kt:339 */)
          36  +
                            /* JsonParserGenerator.kt:354 */).transpose()?
          37  +
                        /* JsonParserGenerator.kt:474 */;
          38  +
                        /* JsonParserGenerator.kt:491 */
   23     39   
                        if let Some(value) = value {
   24     40   
                            map.insert(key, value);
   25     41   
                        }
          42  +
                        /* JsonParserGenerator.kt:686 */
   26     43   
                    }
          44  +
                    /* JsonParserGenerator.kt:695 */
   27     45   
                    other => {
   28     46   
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   29     47   
                            "expected object key or end object, found: {:?}",
   30     48   
                            other
   31     49   
                        )))
          50  +
                    } /* JsonParserGenerator.kt:685 */
   32     51   
                }
          52  +
                /* JsonParserGenerator.kt:684 */
   33     53   
            }
   34         -
            }
          54  +
            /* JsonParserGenerator.kt:504 */
   35     55   
            Ok(Some(map))
          56  +
            /* JsonParserGenerator.kt:713 */
   36     57   
        }
   37         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          58  +
        /* JsonParserGenerator.kt:722 */
          59  +
        _ => {
          60  +
            /* JsonParserGenerator.kt:723 */
          61  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   38     62   
                "expected start object or null",
   39         -
        )),
          63  +
            ))
          64  +
            /* JsonParserGenerator.kt:722 */
          65  +
        } /* JsonParserGenerator.kt:712 */
   40     66   
    }
          67  +
    /* JsonParserGenerator.kt:460 */
   41     68   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_simple_scalar_properties.rs

@@ -1,1 +84,131 @@
    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_simple_scalar_properties_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::simple_scalar_properties::SimpleScalarPropertiesOutput,
    9     11   
    crate::operation::simple_scalar_properties::SimpleScalarPropertiesError,
   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::simple_scalar_properties::SimpleScalarPropertiesError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:185 */
   15     21   
    Err(crate::operation::simple_scalar_properties::SimpleScalarPropertiesError::generic(generic))
          22  +
    /* ProtocolParserGenerator.kt:99 */
   16     23   
}
   17     24   
          25  +
/* RustType.kt:516 */
   18     26   
#[allow(clippy::unnecessary_wraps)]
          27  +
/* ProtocolParserGenerator.kt:71 */
   19     28   
pub fn de_simple_scalar_properties_http_response(
   20     29   
    _response_status: u16,
   21     30   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   22     31   
    _response_body: &[u8],
   23     32   
) -> std::result::Result<
   24     33   
    crate::operation::simple_scalar_properties::SimpleScalarPropertiesOutput,
   25     34   
    crate::operation::simple_scalar_properties::SimpleScalarPropertiesError,
   26     35   
> {
          36  +
    /* ProtocolParserGenerator.kt:77 */
   27     37   
    Ok({
          38  +
        /* RustType.kt:516 */
   28     39   
        #[allow(unused_mut)]
          40  +
        /* ProtocolParserGenerator.kt:240 */
   29     41   
        let mut output = crate::operation::simple_scalar_properties::builders::SimpleScalarPropertiesOutputBuilder::default();
          42  +
        /* ProtocolParserGenerator.kt:247 */
   30     43   
        output = crate::protocol_serde::shape_simple_scalar_properties::de_simple_scalar_properties(_response_body, output)
   31     44   
            .map_err(crate::operation::simple_scalar_properties::SimpleScalarPropertiesError::unhandled)?;
          45  +
        /* ClientBuilderInstantiator.kt:56 */
   32     46   
        output.build()
          47  +
        /* ProtocolParserGenerator.kt:77 */
   33     48   
    })
          49  +
    /* ProtocolParserGenerator.kt:71 */
   34     50   
}
   35     51   
          52  +
/* JsonSerializerGenerator.kt:287 */
   36     53   
pub fn ser_simple_scalar_properties_input(
   37     54   
    input: &crate::operation::simple_scalar_properties::SimpleScalarPropertiesInput,
   38     55   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          56  +
    /* JsonSerializerGenerator.kt:291 */
   39     57   
    let mut out = String::new();
          58  +
    /* JsonSerializerGenerator.kt:292 */
   40     59   
    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
          60  +
    /* JsonSerializerGenerator.kt:375 */
   41     61   
    crate::protocol_serde::shape_simple_scalar_properties_input::ser_simple_scalar_properties_input_input(&mut object, input)?;
          62  +
    /* JsonSerializerGenerator.kt:295 */
   42     63   
    object.finish();
          64  +
    /* JsonSerializerGenerator.kt:296 */
   43     65   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
          66  +
    /* JsonSerializerGenerator.kt:287 */
   44     67   
}
   45     68   
          69  +
/* JsonParserGenerator.kt:148 */
   46     70   
pub(crate) fn de_simple_scalar_properties(
   47     71   
    value: &[u8],
   48     72   
    mut builder: crate::operation::simple_scalar_properties::builders::SimpleScalarPropertiesOutputBuilder,
   49     73   
) -> ::std::result::Result<
   50     74   
    crate::operation::simple_scalar_properties::builders::SimpleScalarPropertiesOutputBuilder,
   51     75   
    ::aws_smithy_json::deserialize::error::DeserializeError,
   52     76   
> {
          77  +
    /* JsonParserGenerator.kt:153 */
   53     78   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
   54     79   
    let tokens = &mut tokens_owned;
   55     80   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
          81  +
    /* JsonParserGenerator.kt:684 */
   56     82   
    loop {
          83  +
        /* JsonParserGenerator.kt:685 */
   57     84   
        match tokens.next().transpose()? {
   58         -
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   59         -
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
          85  +
            /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          86  +
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          87  +
                /* JsonParserGenerator.kt:260 */
          88  +
                match key.to_unescaped()?.as_ref() {
          89  +
                    /* JsonParserGenerator.kt:262 */
   60     90   
                    "floatValue" => {
   61         -
                    builder = builder
   62         -
                        .set_float_value(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy()));
          91  +
                        /* JsonParserGenerator.kt:265 */
          92  +
                        builder = builder.set_float_value(
          93  +
                            /* JsonParserGenerator.kt:361 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f32_lossy())
          94  +
                        /* JsonParserGenerator.kt:265 */);
          95  +
                        /* JsonParserGenerator.kt:262 */
   63     96   
                    }
          97  +
                    /* JsonParserGenerator.kt:262 */
   64     98   
                    "doubleValue" => {
   65         -
                    builder = builder
   66         -
                        .set_double_value(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy()));
          99  +
                        /* JsonParserGenerator.kt:265 */
         100  +
                        builder = builder.set_double_value(
         101  +
                            /* JsonParserGenerator.kt:363 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy())
         102  +
                        /* JsonParserGenerator.kt:265 */);
         103  +
                        /* JsonParserGenerator.kt:262 */
   67    104   
                    }
   68         -
                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   69         -
            },
         105  +
                    /* JsonParserGenerator.kt:290 */
         106  +
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
         107  +
                }
         108  +
                /* JsonParserGenerator.kt:686 */
         109  +
            }
         110  +
            /* JsonParserGenerator.kt:695 */
   70    111   
            other => {
   71    112   
                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   72    113   
                    "expected object key or end object, found: {:?}",
   73    114   
                    other
   74    115   
                )))
         116  +
            } /* JsonParserGenerator.kt:685 */
   75    117   
        }
         118  +
        /* JsonParserGenerator.kt:684 */
   76    119   
    }
   77         -
    }
         120  +
    /* JsonParserGenerator.kt:250 */
   78    121   
    if tokens.next().is_some() {
         122  +
        /* JsonParserGenerator.kt:251 */
   79    123   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   80    124   
            "found more JSON tokens after completing parsing",
   81    125   
        ));
         126  +
        /* JsonParserGenerator.kt:250 */
   82    127   
    }
         128  +
    /* JsonParserGenerator.kt:163 */
   83    129   
    Ok(builder)
         130  +
    /* JsonParserGenerator.kt:148 */
   84    131   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_simple_scalar_properties_input.rs

@@ -1,1 +19,28 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
    2      3   
pub fn ser_simple_scalar_properties_input_input(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::operation::simple_scalar_properties::SimpleScalarPropertiesInput,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.float_value {
           9  +
        /* JsonSerializerGenerator.kt:432 */
    7     10   
        object.key("floatValue").number(
    8     11   
            #[allow(clippy::useless_conversion)]
    9     12   
            ::aws_smithy_types::Number::Float((*var_1).into()),
   10     13   
        );
          14  +
        /* JsonSerializerGenerator.kt:382 */
   11     15   
    }
          16  +
    /* JsonSerializerGenerator.kt:382 */
   12     17   
    if let Some(var_2) = &input.double_value {
          18  +
        /* JsonSerializerGenerator.kt:432 */
   13     19   
        object.key("doubleValue").number(
   14     20   
            #[allow(clippy::useless_conversion)]
   15     21   
            ::aws_smithy_types::Number::Float((*var_2).into()),
   16     22   
        );
          23  +
        /* JsonSerializerGenerator.kt:382 */
   17     24   
    }
          25  +
    /* JsonSerializerGenerator.kt:372 */
   18     26   
    Ok(())
          27  +
    /* JsonSerializerGenerator.kt:358 */
   19     28   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_string_list.rs

@@ -1,1 +34,59 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:398 */
    2      3   
pub(crate) fn de_string_list<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<Option<::std::vec::Vec<::std::string::String>>, ::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::StartArray { .. }) => {
          13  +
            /* JsonParserGenerator.kt:407 */
   11     14   
            let mut items = Vec::new();
          15  +
            /* JsonParserGenerator.kt:408 */
   12     16   
            loop {
          17  +
                /* JsonParserGenerator.kt:409 */
   13     18   
                match tokens.peek() {
          19  +
                    /* JsonParserGenerator.kt:410 */
   14     20   
                    Some(Ok(::aws_smithy_json::deserialize::Token::EndArray { .. })) => {
          21  +
                        /* JsonParserGenerator.kt:411 */
   15     22   
                        tokens.next().transpose().unwrap();
   16     23   
                        break;
          24  +
                        /* JsonParserGenerator.kt:410 */
   17     25   
                    }
          26  +
                    /* JsonParserGenerator.kt:413 */
   18     27   
                    _ => {
   19         -
                        let value = ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   20         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   21         -
                            .transpose()?;
          28  +
                        /* JsonParserGenerator.kt:419 */
          29  +
                        let value =
          30  +
                            /* JsonParserGenerator.kt:354 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
          31  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          32  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
          33  +
                                /* JsonParserGenerator.kt:339 */)
          34  +
                            /* JsonParserGenerator.kt:354 */).transpose()?
          35  +
                        /* JsonParserGenerator.kt:419 */;
          36  +
                        /* JsonParserGenerator.kt:422 */
   22     37   
                        if let Some(value) = value {
   23     38   
                            items.push(value);
   24     39   
                        }
          40  +
                        /* JsonParserGenerator.kt:413 */
          41  +
                    } /* JsonParserGenerator.kt:409 */
   25     42   
                }
          43  +
                /* JsonParserGenerator.kt:408 */
   26     44   
            }
   27         -
            }
          45  +
            /* JsonParserGenerator.kt:446 */
   28     46   
            Ok(Some(items))
          47  +
            /* JsonParserGenerator.kt:713 */
   29     48   
        }
   30         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          49  +
        /* JsonParserGenerator.kt:722 */
          50  +
        _ => {
          51  +
            /* JsonParserGenerator.kt:723 */
          52  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   31     53   
                "expected start array or null",
   32         -
        )),
          54  +
            ))
          55  +
            /* JsonParserGenerator.kt:722 */
          56  +
        } /* JsonParserGenerator.kt:712 */
   33     57   
    }
          58  +
    /* JsonParserGenerator.kt:398 */
   34     59   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_string_map.rs

@@ -1,1 +41,68 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:460 */
    2      3   
pub(crate) fn de_string_map<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<
    5      6   
    Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    6      7   
    ::aws_smithy_json::deserialize::error::DeserializeError,
    7      8   
>
    8      9   
where
    9     10   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
   10     11   
{
          12  +
    /* JsonParserGenerator.kt:712 */
   11     13   
    match tokens.next().transpose()? {
   12         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          14  +
        /* JsonParserGenerator.kt:713 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   13     15   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          16  +
            /* JsonParserGenerator.kt:469 */
   14     17   
            let mut map = ::std::collections::HashMap::new();
          18  +
            /* JsonParserGenerator.kt:684 */
   15     19   
            loop {
          20  +
                /* JsonParserGenerator.kt:685 */
   16     21   
                match tokens.next().transpose()? {
   17         -
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          22  +
                    /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   18     23   
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
   19         -
                        let key = key.to_unescaped().map(|u| u.into_owned())?;
   20         -
                        let value = ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   21         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   22         -
                            .transpose()?;
          24  +
                        /* JsonParserGenerator.kt:471 */
          25  +
                        let key =
          26  +
                            /* JsonParserGenerator.kt:339 */key.to_unescaped().map(|u|
          27  +
                                /* JsonParserGenerator.kt:348 */u.into_owned()
          28  +
                            /* JsonParserGenerator.kt:339 */)
          29  +
                        /* JsonParserGenerator.kt:471 */?;
          30  +
                        /* JsonParserGenerator.kt:474 */
          31  +
                        let value =
          32  +
                            /* JsonParserGenerator.kt:354 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
          33  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          34  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
          35  +
                                /* JsonParserGenerator.kt:339 */)
          36  +
                            /* JsonParserGenerator.kt:354 */).transpose()?
          37  +
                        /* JsonParserGenerator.kt:474 */;
          38  +
                        /* JsonParserGenerator.kt:491 */
   23     39   
                        if let Some(value) = value {
   24     40   
                            map.insert(key, value);
   25     41   
                        }
          42  +
                        /* JsonParserGenerator.kt:686 */
   26     43   
                    }
          44  +
                    /* JsonParserGenerator.kt:695 */
   27     45   
                    other => {
   28     46   
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   29     47   
                            "expected object key or end object, found: {:?}",
   30     48   
                            other
   31     49   
                        )))
          50  +
                    } /* JsonParserGenerator.kt:685 */
   32     51   
                }
          52  +
                /* JsonParserGenerator.kt:684 */
   33     53   
            }
   34         -
            }
          54  +
            /* JsonParserGenerator.kt:504 */
   35     55   
            Ok(Some(map))
          56  +
            /* JsonParserGenerator.kt:713 */
   36     57   
        }
   37         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          58  +
        /* JsonParserGenerator.kt:722 */
          59  +
        _ => {
          60  +
            /* JsonParserGenerator.kt:723 */
          61  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   38     62   
                "expected start object or null",
   39         -
        )),
          63  +
            ))
          64  +
            /* JsonParserGenerator.kt:722 */
          65  +
        } /* JsonParserGenerator.kt:712 */
   40     66   
    }
          67  +
    /* JsonParserGenerator.kt:460 */
   41     68   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/protocol_serde/shape_test_string_list.rs

@@ -1,1 +34,59 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:398 */
    2      3   
pub(crate) fn de_test_string_list<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<Option<::std::vec::Vec<::std::string::String>>, ::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::StartArray { .. }) => {
          13  +
            /* JsonParserGenerator.kt:407 */
   11     14   
            let mut items = Vec::new();
          15  +
            /* JsonParserGenerator.kt:408 */
   12     16   
            loop {
          17  +
                /* JsonParserGenerator.kt:409 */
   13     18   
                match tokens.peek() {
          19  +
                    /* JsonParserGenerator.kt:410 */
   14     20   
                    Some(Ok(::aws_smithy_json::deserialize::Token::EndArray { .. })) => {
          21  +
                        /* JsonParserGenerator.kt:411 */
   15     22   
                        tokens.next().transpose().unwrap();
   16     23   
                        break;
          24  +
                        /* JsonParserGenerator.kt:410 */
   17     25   
                    }
          26  +
                    /* JsonParserGenerator.kt:413 */
   18     27   
                    _ => {
   19         -
                        let value = ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   20         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   21         -
                            .transpose()?;
          28  +
                        /* JsonParserGenerator.kt:419 */
          29  +
                        let value =
          30  +
                            /* JsonParserGenerator.kt:354 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
          31  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          32  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
          33  +
                                /* JsonParserGenerator.kt:339 */)
          34  +
                            /* JsonParserGenerator.kt:354 */).transpose()?
          35  +
                        /* JsonParserGenerator.kt:419 */;
          36  +
                        /* JsonParserGenerator.kt:422 */
   22     37   
                        if let Some(value) = value {
   23     38   
                            items.push(value);
   24     39   
                        }
          40  +
                        /* JsonParserGenerator.kt:413 */
          41  +
                    } /* JsonParserGenerator.kt:409 */
   25     42   
                }
          43  +
                /* JsonParserGenerator.kt:408 */
   26     44   
            }
   27         -
            }
          45  +
            /* JsonParserGenerator.kt:446 */
   28     46   
            Ok(Some(items))
          47  +
            /* JsonParserGenerator.kt:713 */
   29     48   
        }
   30         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          49  +
        /* JsonParserGenerator.kt:722 */
          50  +
        _ => {
          51  +
            /* JsonParserGenerator.kt:723 */
          52  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   31     53   
                "expected start array or null",
   32         -
        )),
          54  +
            ))
          55  +
            /* JsonParserGenerator.kt:722 */
          56  +
        } /* JsonParserGenerator.kt:712 */
   33     57   
    }
          58  +
    /* JsonParserGenerator.kt:398 */
   34     59   
}