Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943

Files changed:

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_map_with_enum_key_op_input.rs

@@ -1,1 +17,30 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
    2      3   
pub fn ser_map_with_enum_key_op_input_input(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::operation::map_with_enum_key_op::MapWithEnumKeyOpInput,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.map {
           9  +
        /* JsonSerializerGenerator.kt:495 */
    7     10   
        #[allow(unused_mut)]
          11  +
        /* JsonSerializerGenerator.kt:496 */
    8     12   
        let mut object_2 = object.key("map").start_object();
          13  +
        /* JsonSerializerGenerator.kt:537 */
    9     14   
        for (key_3, value_4) in var_1 {
          15  +
            /* SerializerUtil.kt:42 */
   10     16   
            {
          17  +
                /* JsonSerializerGenerator.kt:423 */
   11     18   
                object_2.key(key_3.as_str()).string(value_4.as_str());
          19  +
                /* SerializerUtil.kt:42 */
   12     20   
            }
          21  +
            /* JsonSerializerGenerator.kt:537 */
   13     22   
        }
          23  +
        /* JsonSerializerGenerator.kt:515 */
   14     24   
        object_2.finish();
          25  +
        /* JsonSerializerGenerator.kt:382 */
   15     26   
    }
          27  +
    /* JsonSerializerGenerator.kt:372 */
   16     28   
    Ok(())
          29  +
    /* JsonSerializerGenerator.kt:358 */
   17     30   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_non_sparse_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_non_sparse_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   
                        }
   25         -
                    }
          40  +
                        /* JsonParserGenerator.kt:413 */
          41  +
                    } /* JsonParserGenerator.kt:409 */
   26     42   
                }
          43  +
                /* JsonParserGenerator.kt:408 */
   27     44   
            }
          45  +
            /* JsonParserGenerator.kt:446 */
   28     46   
            Ok(Some(items))
          47  +
            /* JsonParserGenerator.kt:713 */
   29     48   
        }
   30         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   31         -
            "expected start array or null",
   32         -
        )),
          49  +
        /* JsonParserGenerator.kt:722 */
          50  +
        _ => {
          51  +
            /* JsonParserGenerator.kt:723 */
          52  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          53  +
                "expected start array or null",
          54  +
            ))
          55  +
            /* JsonParserGenerator.kt:722 */
          56  +
        } /* JsonParserGenerator.kt:712 */
   33     57   
    }
          58  +
    /* JsonParserGenerator.kt:398 */
   34     59   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_non_sparse_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_non_sparse_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   
                        )))
   32         -
                    }
          50  +
                    } /* JsonParserGenerator.kt:685 */
   33     51   
                }
          52  +
                /* JsonParserGenerator.kt:684 */
   34     53   
            }
          54  +
            /* JsonParserGenerator.kt:504 */
   35     55   
            Ok(Some(map))
          56  +
            /* JsonParserGenerator.kt:713 */
   36     57   
        }
   37         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   38         -
            "expected start object or null",
   39         -
        )),
          58  +
        /* JsonParserGenerator.kt:722 */
          59  +
        _ => {
          60  +
            /* JsonParserGenerator.kt:723 */
          61  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          62  +
                "expected start object or null",
          63  +
            ))
          64  +
            /* JsonParserGenerator.kt:722 */
          65  +
        } /* JsonParserGenerator.kt:712 */
   40     66   
    }
          67  +
    /* JsonParserGenerator.kt:460 */
   41     68   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_null_in_non_sparse.rs

@@ -1,1 +92,150 @@
    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_null_in_non_sparse_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::null_in_non_sparse::NullInNonSparseOutput, crate::operation::null_in_non_sparse::NullInNonSparseError> {
          10  +
    /* RustType.kt:516 */
    8     11   
    #[allow(unused_mut)]
          12  +
    /* ProtocolParserGenerator.kt:106 */
    9     13   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   10     14   
        .map_err(crate::operation::null_in_non_sparse::NullInNonSparseError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:122 */
   12     18   
    let error_code = match generic.code() {
   13     19   
        Some(code) => code,
   14     20   
        None => return Err(crate::operation::null_in_non_sparse::NullInNonSparseError::unhandled(generic)),
   15     21   
    };
   16     22   
   17     23   
    let _error_message = generic.message().map(|msg| msg.to_owned());
          24  +
    /* ProtocolParserGenerator.kt:133 */
   18     25   
    Err(match error_code {
          26  +
        /* ProtocolParserGenerator.kt:139 */
   19     27   
        "ExtraError" => crate::operation::null_in_non_sparse::NullInNonSparseError::ExtraError({
          28  +
            /* RustType.kt:516 */
   20     29   
            #[allow(unused_mut)]
   21         -
            let mut tmp = {
   22         -
                #[allow(unused_mut)]
   23         -
                let mut output = crate::types::error::builders::ExtraErrorBuilder::default();
   24         -
                output = crate::protocol_serde::shape_extra_error::de_extra_error_json_err(_response_body, output)
   25         -
                    .map_err(crate::operation::null_in_non_sparse::NullInNonSparseError::unhandled)?;
   26         -
                let output = output.meta(generic);
   27         -
                output.build()
   28         -
            };
          30  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          31  +
                /* ProtocolParserGenerator.kt:146 */ {
          32  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          33  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ExtraErrorBuilder::default();
          34  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_extra_error::de_extra_error_json_err(_response_body, output).map_err(crate::operation::null_in_non_sparse::NullInNonSparseError::unhandled)?;
          35  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          36  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          37  +
                /* ProtocolParserGenerator.kt:146 */}
          38  +
            /* ProtocolParserGenerator.kt:145 */;
          39  +
            /* ProtocolParserGenerator.kt:170 */
   29     40   
            if tmp.message.is_none() {
   30     41   
                tmp.message = _error_message;
   31     42   
            }
          43  +
            /* ProtocolParserGenerator.kt:179 */
   32     44   
            tmp
          45  +
            /* ProtocolParserGenerator.kt:139 */
   33     46   
        }),
   34         -
        _ => crate::operation::null_in_non_sparse::NullInNonSparseError::generic(generic),
          47  +
        /* ProtocolParserGenerator.kt:182 */
          48  +
        _ => crate::operation::null_in_non_sparse::NullInNonSparseError::generic(generic), /* ProtocolParserGenerator.kt:133 */
   35     49   
    })
          50  +
    /* ProtocolParserGenerator.kt:99 */
   36     51   
}
   37     52   
          53  +
/* RustType.kt:516 */
   38     54   
#[allow(clippy::unnecessary_wraps)]
          55  +
/* ProtocolParserGenerator.kt:71 */
   39     56   
pub fn de_null_in_non_sparse_http_response(
   40     57   
    _response_status: u16,
   41     58   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   42     59   
    _response_body: &[u8],
   43     60   
) -> std::result::Result<crate::operation::null_in_non_sparse::NullInNonSparseOutput, crate::operation::null_in_non_sparse::NullInNonSparseError> {
          61  +
    /* ProtocolParserGenerator.kt:77 */
   44     62   
    Ok({
          63  +
        /* RustType.kt:516 */
   45     64   
        #[allow(unused_mut)]
          65  +
        /* ProtocolParserGenerator.kt:240 */
   46     66   
        let mut output = crate::operation::null_in_non_sparse::builders::NullInNonSparseOutputBuilder::default();
          67  +
        /* ProtocolParserGenerator.kt:247 */
   47     68   
        output = crate::protocol_serde::shape_null_in_non_sparse::de_null_in_non_sparse(_response_body, output)
   48     69   
            .map_err(crate::operation::null_in_non_sparse::NullInNonSparseError::unhandled)?;
          70  +
        /* ClientBuilderInstantiator.kt:56 */
   49     71   
        output.build()
          72  +
        /* ProtocolParserGenerator.kt:77 */
   50     73   
    })
          74  +
    /* ProtocolParserGenerator.kt:71 */
   51     75   
}
   52     76   
          77  +
/* JsonParserGenerator.kt:148 */
   53     78   
pub(crate) fn de_null_in_non_sparse(
   54     79   
    value: &[u8],
   55     80   
    mut builder: crate::operation::null_in_non_sparse::builders::NullInNonSparseOutputBuilder,
   56     81   
) -> ::std::result::Result<
   57     82   
    crate::operation::null_in_non_sparse::builders::NullInNonSparseOutputBuilder,
   58     83   
    ::aws_smithy_json::deserialize::error::DeserializeError,
   59     84   
> {
          85  +
    /* JsonParserGenerator.kt:153 */
   60     86   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
   61     87   
    let tokens = &mut tokens_owned;
   62     88   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
          89  +
    /* JsonParserGenerator.kt:684 */
   63     90   
    loop {
          91  +
        /* JsonParserGenerator.kt:685 */
   64     92   
        match tokens.next().transpose()? {
   65         -
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   66         -
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
   67         -
                "list" => {
   68         -
                    builder = builder.set_list(crate::protocol_serde::shape_non_sparse_list::de_non_sparse_list(tokens)?);
          93  +
            /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          94  +
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          95  +
                /* JsonParserGenerator.kt:260 */
          96  +
                match key.to_unescaped()?.as_ref() {
          97  +
                    /* JsonParserGenerator.kt:262 */
          98  +
                    "list" => {
          99  +
                        /* JsonParserGenerator.kt:265 */
         100  +
                        builder = builder.set_list(
         101  +
                            /* JsonParserGenerator.kt:451 */
         102  +
                            crate::protocol_serde::shape_non_sparse_list::de_non_sparse_list(tokens)?, /* JsonParserGenerator.kt:265 */
         103  +
                        );
         104  +
                        /* JsonParserGenerator.kt:262 */
         105  +
                    }
         106  +
                    /* JsonParserGenerator.kt:262 */
         107  +
                    "map" => {
         108  +
                        /* JsonParserGenerator.kt:265 */
         109  +
                        builder = builder.set_map(
         110  +
                            /* JsonParserGenerator.kt:509 */
         111  +
                            crate::protocol_serde::shape_non_sparse_map::de_non_sparse_map(tokens)?, /* JsonParserGenerator.kt:265 */
         112  +
                        );
         113  +
                        /* JsonParserGenerator.kt:262 */
         114  +
                    }
         115  +
                    /* JsonParserGenerator.kt:262 */
         116  +
                    "union" => {
         117  +
                        /* JsonParserGenerator.kt:265 */
         118  +
                        builder = builder.set_union(
         119  +
                            /* JsonParserGenerator.kt:660 */
         120  +
                            crate::protocol_serde::shape_single_element_union::de_single_element_union(tokens)?, /* JsonParserGenerator.kt:265 */
         121  +
                        );
         122  +
                        /* JsonParserGenerator.kt:262 */
         123  +
                    }
         124  +
                    /* JsonParserGenerator.kt:290 */
         125  +
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
   69    126   
                }
   70         -
                "map" => {
   71         -
                    builder = builder.set_map(crate::protocol_serde::shape_non_sparse_map::de_non_sparse_map(tokens)?);
   72         -
                }
   73         -
                "union" => {
   74         -
                    builder = builder.set_union(crate::protocol_serde::shape_single_element_union::de_single_element_union(tokens)?);
   75         -
                }
   76         -
                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   77         -
            },
         127  +
                /* JsonParserGenerator.kt:686 */
         128  +
            }
         129  +
            /* JsonParserGenerator.kt:695 */
   78    130   
            other => {
   79    131   
                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   80    132   
                    "expected object key or end object, found: {:?}",
   81    133   
                    other
   82    134   
                )))
   83         -
            }
         135  +
            } /* JsonParserGenerator.kt:685 */
   84    136   
        }
         137  +
        /* JsonParserGenerator.kt:684 */
   85    138   
    }
         139  +
    /* JsonParserGenerator.kt:250 */
   86    140   
    if tokens.next().is_some() {
         141  +
        /* JsonParserGenerator.kt:251 */
   87    142   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   88    143   
            "found more JSON tokens after completing parsing",
   89    144   
        ));
         145  +
        /* JsonParserGenerator.kt:250 */
   90    146   
    }
         147  +
    /* JsonParserGenerator.kt:163 */
   91    148   
    Ok(builder)
         149  +
    /* JsonParserGenerator.kt:148 */
   92    150   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_primitive_int_header.rs

@@ -1,1 +74,102 @@
    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_primitive_int_header_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::primitive_int_header::PrimitiveIntHeaderOutput,
    9     11   
    crate::operation::primitive_int_header::PrimitiveIntHeaderError,
   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::primitive_int_header::PrimitiveIntHeaderError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:122 */
   15     21   
    let error_code = match generic.code() {
   16     22   
        Some(code) => code,
   17     23   
        None => return Err(crate::operation::primitive_int_header::PrimitiveIntHeaderError::unhandled(generic)),
   18     24   
    };
   19     25   
   20     26   
    let _error_message = generic.message().map(|msg| msg.to_owned());
          27  +
    /* ProtocolParserGenerator.kt:133 */
   21     28   
    Err(match error_code {
          29  +
        /* ProtocolParserGenerator.kt:139 */
   22     30   
        "ValidationException" => crate::operation::primitive_int_header::PrimitiveIntHeaderError::ValidationError({
          31  +
            /* RustType.kt:516 */
   23     32   
            #[allow(unused_mut)]
   24         -
            let mut tmp = {
   25         -
                #[allow(unused_mut)]
   26         -
                let mut output = crate::types::error::builders::ValidationErrorBuilder::default();
   27         -
                output = crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(_response_body, output)
   28         -
                    .map_err(crate::operation::primitive_int_header::PrimitiveIntHeaderError::unhandled)?;
   29         -
                let output = output.meta(generic);
   30         -
                crate::serde_util::validation_exception_correct_errors(output)
   31         -
                    .build()
   32         -
                    .map_err(crate::operation::primitive_int_header::PrimitiveIntHeaderError::unhandled)?
   33         -
            };
          33  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          34  +
                /* ProtocolParserGenerator.kt:146 */ {
          35  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          36  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ValidationErrorBuilder::default();
          37  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(_response_body, output).map_err(crate::operation::primitive_int_header::PrimitiveIntHeaderError::unhandled)?;
          38  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          39  +
                    /* ClientBuilderInstantiator.kt:46 */crate::serde_util::validation_exception_correct_errors(output).build().map_err(crate::operation::primitive_int_header::PrimitiveIntHeaderError::unhandled)?
          40  +
                /* ProtocolParserGenerator.kt:146 */}
          41  +
            /* ProtocolParserGenerator.kt:145 */;
          42  +
            /* ProtocolParserGenerator.kt:179 */
   34     43   
            tmp
          44  +
            /* ProtocolParserGenerator.kt:139 */
   35     45   
        }),
          46  +
        /* ProtocolParserGenerator.kt:139 */
   36     47   
        "ExtraError" => crate::operation::primitive_int_header::PrimitiveIntHeaderError::ExtraError({
          48  +
            /* RustType.kt:516 */
   37     49   
            #[allow(unused_mut)]
   38         -
            let mut tmp = {
   39         -
                #[allow(unused_mut)]
   40         -
                let mut output = crate::types::error::builders::ExtraErrorBuilder::default();
   41         -
                output = crate::protocol_serde::shape_extra_error::de_extra_error_json_err(_response_body, output)
   42         -
                    .map_err(crate::operation::primitive_int_header::PrimitiveIntHeaderError::unhandled)?;
   43         -
                let output = output.meta(generic);
   44         -
                output.build()
   45         -
            };
          50  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          51  +
                /* ProtocolParserGenerator.kt:146 */ {
          52  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          53  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ExtraErrorBuilder::default();
          54  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_extra_error::de_extra_error_json_err(_response_body, output).map_err(crate::operation::primitive_int_header::PrimitiveIntHeaderError::unhandled)?;
          55  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          56  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          57  +
                /* ProtocolParserGenerator.kt:146 */}
          58  +
            /* ProtocolParserGenerator.kt:145 */;
          59  +
            /* ProtocolParserGenerator.kt:170 */
   46     60   
            if tmp.message.is_none() {
   47     61   
                tmp.message = _error_message;
   48     62   
            }
          63  +
            /* ProtocolParserGenerator.kt:179 */
   49     64   
            tmp
          65  +
            /* ProtocolParserGenerator.kt:139 */
   50     66   
        }),
   51         -
        _ => crate::operation::primitive_int_header::PrimitiveIntHeaderError::generic(generic),
          67  +
        /* ProtocolParserGenerator.kt:182 */
          68  +
        _ => crate::operation::primitive_int_header::PrimitiveIntHeaderError::generic(generic), /* ProtocolParserGenerator.kt:133 */
   52     69   
    })
          70  +
    /* ProtocolParserGenerator.kt:99 */
   53     71   
}
   54     72   
          73  +
/* RustType.kt:516 */
   55     74   
#[allow(clippy::unnecessary_wraps)]
          75  +
/* ProtocolParserGenerator.kt:71 */
   56     76   
pub fn de_primitive_int_header_http_response(
   57     77   
    _response_status: u16,
   58     78   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   59     79   
    _response_body: &[u8],
   60     80   
) -> std::result::Result<
   61     81   
    crate::operation::primitive_int_header::PrimitiveIntHeaderOutput,
   62     82   
    crate::operation::primitive_int_header::PrimitiveIntHeaderError,
   63     83   
> {
          84  +
    /* ProtocolParserGenerator.kt:77 */
   64     85   
    Ok({
          86  +
        /* RustType.kt:516 */
   65     87   
        #[allow(unused_mut)]
          88  +
        /* ProtocolParserGenerator.kt:240 */
   66     89   
        let mut output = crate::operation::primitive_int_header::builders::PrimitiveIntHeaderOutputBuilder::default();
          90  +
        /* ProtocolParserGenerator.kt:267 */
   67     91   
        output = output.set_field(
          92  +
            /* ProtocolParserGenerator.kt:302 */
   68     93   
            crate::protocol_serde::shape_primitive_int_header_output::de_field_header(_response_headers).map_err(|_| {
   69     94   
                crate::operation::primitive_int_header::PrimitiveIntHeaderError::unhandled("Failed to parse field from header `x-field")
   70         -
            })?,
          95  +
            })?, /* ProtocolParserGenerator.kt:267 */
   71     96   
        );
          97  +
        /* ClientBuilderInstantiator.kt:56 */
   72     98   
        crate::serde_util::primitive_int_header_output_output_correct_errors(output).build()
          99  +
        /* ProtocolParserGenerator.kt:77 */
   73    100   
    })
         101  +
    /* ProtocolParserGenerator.kt:71 */
   74    102   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_primitive_int_header_output.rs

@@ -1,1 +16,21 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* HttpBindingGenerator.kt:153 */
    2      3   
pub(crate) fn de_field_header(
    3      4   
    header_map: &::aws_smithy_runtime_api::http::Headers,
    4      5   
) -> ::std::result::Result<::std::option::Option<i32>, ::aws_smithy_http::header::ParseError> {
           6  +
    /* HttpBindingGenerator.kt:160 */
    5      7   
    let headers = header_map.get_all("x-field");
           8  +
    /* HttpBindingGenerator.kt:404 */
    6      9   
    let var_1 = ::aws_smithy_http::header::read_many_primitive::<i32>(headers)?;
          10  +
    /* HttpBindingGenerator.kt:468 */
    7     11   
    if var_1.len() > 1 {
    8     12   
        Err(::aws_smithy_http::header::ParseError::new(format!(
    9     13   
            "expected one item but found {}",
   10     14   
            var_1.len()
   11     15   
        )))
   12     16   
    } else {
   13     17   
        let mut var_1 = var_1;
   14     18   
        Ok(var_1.pop())
   15     19   
    }
          20  +
    /* HttpBindingGenerator.kt:153 */
   16     21   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_primitive_int_op.rs

@@ -1,1 +100,151 @@
    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_primitive_int_op_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::primitive_int_op::PrimitiveIntOpOutput, crate::operation::primitive_int_op::PrimitiveIntOpError> {
          10  +
    /* RustType.kt:516 */
    8     11   
    #[allow(unused_mut)]
          12  +
    /* ProtocolParserGenerator.kt:106 */
    9     13   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   10     14   
        .map_err(crate::operation::primitive_int_op::PrimitiveIntOpError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:122 */
   12     18   
    let error_code = match generic.code() {
   13     19   
        Some(code) => code,
   14     20   
        None => return Err(crate::operation::primitive_int_op::PrimitiveIntOpError::unhandled(generic)),
   15     21   
    };
   16     22   
   17     23   
    let _error_message = generic.message().map(|msg| msg.to_owned());
          24  +
    /* ProtocolParserGenerator.kt:133 */
   18     25   
    Err(match error_code {
          26  +
        /* ProtocolParserGenerator.kt:139 */
   19     27   
        "ExtraError" => crate::operation::primitive_int_op::PrimitiveIntOpError::ExtraError({
          28  +
            /* RustType.kt:516 */
   20     29   
            #[allow(unused_mut)]
   21         -
            let mut tmp = {
   22         -
                #[allow(unused_mut)]
   23         -
                let mut output = crate::types::error::builders::ExtraErrorBuilder::default();
   24         -
                output = crate::protocol_serde::shape_extra_error::de_extra_error_json_err(_response_body, output)
   25         -
                    .map_err(crate::operation::primitive_int_op::PrimitiveIntOpError::unhandled)?;
   26         -
                let output = output.meta(generic);
   27         -
                output.build()
   28         -
            };
          30  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          31  +
                /* ProtocolParserGenerator.kt:146 */ {
          32  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          33  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ExtraErrorBuilder::default();
          34  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_extra_error::de_extra_error_json_err(_response_body, output).map_err(crate::operation::primitive_int_op::PrimitiveIntOpError::unhandled)?;
          35  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          36  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          37  +
                /* ProtocolParserGenerator.kt:146 */}
          38  +
            /* ProtocolParserGenerator.kt:145 */;
          39  +
            /* ProtocolParserGenerator.kt:170 */
   29     40   
            if tmp.message.is_none() {
   30     41   
                tmp.message = _error_message;
   31     42   
            }
          43  +
            /* ProtocolParserGenerator.kt:179 */
   32     44   
            tmp
          45  +
            /* ProtocolParserGenerator.kt:139 */
   33     46   
        }),
   34         -
        _ => crate::operation::primitive_int_op::PrimitiveIntOpError::generic(generic),
          47  +
        /* ProtocolParserGenerator.kt:182 */
          48  +
        _ => crate::operation::primitive_int_op::PrimitiveIntOpError::generic(generic), /* ProtocolParserGenerator.kt:133 */
   35     49   
    })
          50  +
    /* ProtocolParserGenerator.kt:99 */
   36     51   
}
   37     52   
          53  +
/* RustType.kt:516 */
   38     54   
#[allow(clippy::unnecessary_wraps)]
          55  +
/* ProtocolParserGenerator.kt:71 */
   39     56   
pub fn de_primitive_int_op_http_response(
   40     57   
    _response_status: u16,
   41     58   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   42     59   
    _response_body: &[u8],
   43     60   
) -> std::result::Result<crate::operation::primitive_int_op::PrimitiveIntOpOutput, crate::operation::primitive_int_op::PrimitiveIntOpError> {
          61  +
    /* ProtocolParserGenerator.kt:77 */
   44     62   
    Ok({
          63  +
        /* RustType.kt:516 */
   45     64   
        #[allow(unused_mut)]
          65  +
        /* ProtocolParserGenerator.kt:240 */
   46     66   
        let mut output = crate::operation::primitive_int_op::builders::PrimitiveIntOpOutputBuilder::default();
          67  +
        /* ProtocolParserGenerator.kt:247 */
   47     68   
        output = crate::protocol_serde::shape_primitive_int_op::de_primitive_int_op(_response_body, output)
   48     69   
            .map_err(crate::operation::primitive_int_op::PrimitiveIntOpError::unhandled)?;
          70  +
        /* ClientBuilderInstantiator.kt:56 */
   49     71   
        output.build()
          72  +
        /* ProtocolParserGenerator.kt:77 */
   50     73   
    })
          74  +
    /* ProtocolParserGenerator.kt:71 */
   51     75   
}
   52     76   
          77  +
/* JsonSerializerGenerator.kt:287 */
   53     78   
pub fn ser_primitive_int_op_input(
   54     79   
    input: &crate::operation::primitive_int_op::PrimitiveIntOpInput,
   55     80   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          81  +
    /* JsonSerializerGenerator.kt:291 */
   56     82   
    let mut out = String::new();
          83  +
    /* JsonSerializerGenerator.kt:292 */
   57     84   
    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
          85  +
    /* JsonSerializerGenerator.kt:375 */
   58     86   
    crate::protocol_serde::shape_primitive_int_op_input::ser_primitive_int_op_input_input(&mut object, input)?;
          87  +
    /* JsonSerializerGenerator.kt:295 */
   59     88   
    object.finish();
          89  +
    /* JsonSerializerGenerator.kt:296 */
   60     90   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
          91  +
    /* JsonSerializerGenerator.kt:287 */
   61     92   
}
   62     93   
          94  +
/* JsonParserGenerator.kt:148 */
   63     95   
pub(crate) fn de_primitive_int_op(
   64     96   
    value: &[u8],
   65     97   
    mut builder: crate::operation::primitive_int_op::builders::PrimitiveIntOpOutputBuilder,
   66     98   
) -> ::std::result::Result<
   67     99   
    crate::operation::primitive_int_op::builders::PrimitiveIntOpOutputBuilder,
   68    100   
    ::aws_smithy_json::deserialize::error::DeserializeError,
   69    101   
> {
         102  +
    /* JsonParserGenerator.kt:153 */
   70    103   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
   71    104   
    let tokens = &mut tokens_owned;
   72    105   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
         106  +
    /* JsonParserGenerator.kt:684 */
   73    107   
    loop {
         108  +
        /* JsonParserGenerator.kt:685 */
   74    109   
        match tokens.next().transpose()? {
   75         -
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   76         -
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
   77         -
                "value" => {
   78         -
                    builder = builder.set_value(
   79         -
                        ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
   80         -
                            .map(i32::try_from)
   81         -
                            .transpose()?,
   82         -
                    );
         110  +
            /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
         111  +
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
         112  +
                /* JsonParserGenerator.kt:260 */
         113  +
                match key.to_unescaped()?.as_ref() {
         114  +
                    /* JsonParserGenerator.kt:262 */
         115  +
                    "value" => {
         116  +
                        /* JsonParserGenerator.kt:265 */
         117  +
                        builder = builder.set_value(
         118  +
                            /* JsonParserGenerator.kt:365 */
         119  +
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
         120  +
                                .map(i32::try_from)
         121  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
         122  +
                        );
         123  +
                        /* JsonParserGenerator.kt:262 */
         124  +
                    }
         125  +
                    /* JsonParserGenerator.kt:290 */
         126  +
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
   83    127   
                }
   84         -
                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   85         -
            },
         128  +
                /* JsonParserGenerator.kt:686 */
         129  +
            }
         130  +
            /* JsonParserGenerator.kt:695 */
   86    131   
            other => {
   87    132   
                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   88    133   
                    "expected object key or end object, found: {:?}",
   89    134   
                    other
   90    135   
                )))
   91         -
            }
         136  +
            } /* JsonParserGenerator.kt:685 */
   92    137   
        }
         138  +
        /* JsonParserGenerator.kt:684 */
   93    139   
    }
         140  +
    /* JsonParserGenerator.kt:250 */
   94    141   
    if tokens.next().is_some() {
         142  +
        /* JsonParserGenerator.kt:251 */
   95    143   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   96    144   
            "found more JSON tokens after completing parsing",
   97    145   
        ));
         146  +
        /* JsonParserGenerator.kt:250 */
   98    147   
    }
         148  +
    /* JsonParserGenerator.kt:163 */
   99    149   
    Ok(builder)
         150  +
    /* JsonParserGenerator.kt:148 */
  100    151   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_primitive_int_op_input.rs

@@ -1,1 +13,19 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
    2      3   
pub fn ser_primitive_int_op_input_input(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::operation::primitive_int_op::PrimitiveIntOpInput,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.value {
           9  +
        /* JsonSerializerGenerator.kt:432 */
    7     10   
        object.key("value").number(
    8     11   
            #[allow(clippy::useless_conversion)]
    9     12   
            ::aws_smithy_types::Number::NegInt((*var_1).into()),
   10     13   
        );
          14  +
        /* JsonSerializerGenerator.kt:382 */
   11     15   
    }
          16  +
    /* JsonSerializerGenerator.kt:372 */
   12     17   
    Ok(())
          18  +
    /* JsonSerializerGenerator.kt:358 */
   13     19   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_query_precedence.rs

@@ -1,1 +49,72 @@
    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_query_precedence_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::query_precedence::QueryPrecedenceOutput, crate::operation::query_precedence::QueryPrecedenceError> {
          10  +
    /* RustType.kt:516 */
    8     11   
    #[allow(unused_mut)]
          12  +
    /* ProtocolParserGenerator.kt:106 */
    9     13   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   10     14   
        .map_err(crate::operation::query_precedence::QueryPrecedenceError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:122 */
   12     18   
    let error_code = match generic.code() {
   13     19   
        Some(code) => code,
   14     20   
        None => return Err(crate::operation::query_precedence::QueryPrecedenceError::unhandled(generic)),
   15     21   
    };
   16     22   
   17     23   
    let _error_message = generic.message().map(|msg| msg.to_owned());
          24  +
    /* ProtocolParserGenerator.kt:133 */
   18     25   
    Err(match error_code {
          26  +
        /* ProtocolParserGenerator.kt:139 */
   19     27   
        "ExtraError" => crate::operation::query_precedence::QueryPrecedenceError::ExtraError({
          28  +
            /* RustType.kt:516 */
   20     29   
            #[allow(unused_mut)]
   21         -
            let mut tmp = {
   22         -
                #[allow(unused_mut)]
   23         -
                let mut output = crate::types::error::builders::ExtraErrorBuilder::default();
   24         -
                output = crate::protocol_serde::shape_extra_error::de_extra_error_json_err(_response_body, output)
   25         -
                    .map_err(crate::operation::query_precedence::QueryPrecedenceError::unhandled)?;
   26         -
                let output = output.meta(generic);
   27         -
                output.build()
   28         -
            };
          30  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          31  +
                /* ProtocolParserGenerator.kt:146 */ {
          32  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          33  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ExtraErrorBuilder::default();
          34  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_extra_error::de_extra_error_json_err(_response_body, output).map_err(crate::operation::query_precedence::QueryPrecedenceError::unhandled)?;
          35  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          36  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          37  +
                /* ProtocolParserGenerator.kt:146 */}
          38  +
            /* ProtocolParserGenerator.kt:145 */;
          39  +
            /* ProtocolParserGenerator.kt:170 */
   29     40   
            if tmp.message.is_none() {
   30     41   
                tmp.message = _error_message;
   31     42   
            }
          43  +
            /* ProtocolParserGenerator.kt:179 */
   32     44   
            tmp
          45  +
            /* ProtocolParserGenerator.kt:139 */
   33     46   
        }),
   34         -
        _ => crate::operation::query_precedence::QueryPrecedenceError::generic(generic),
          47  +
        /* ProtocolParserGenerator.kt:182 */
          48  +
        _ => crate::operation::query_precedence::QueryPrecedenceError::generic(generic), /* ProtocolParserGenerator.kt:133 */
   35     49   
    })
          50  +
    /* ProtocolParserGenerator.kt:99 */
   36     51   
}
   37     52   
          53  +
/* RustType.kt:516 */
   38     54   
#[allow(clippy::unnecessary_wraps)]
          55  +
/* ProtocolParserGenerator.kt:71 */
   39     56   
pub fn de_query_precedence_http_response(
   40     57   
    _response_status: u16,
   41     58   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   42     59   
    _response_body: &[u8],
   43     60   
) -> std::result::Result<crate::operation::query_precedence::QueryPrecedenceOutput, crate::operation::query_precedence::QueryPrecedenceError> {
          61  +
    /* ProtocolParserGenerator.kt:77 */
   44     62   
    Ok({
          63  +
        /* RustType.kt:516 */
   45     64   
        #[allow(unused_mut)]
          65  +
        /* ProtocolParserGenerator.kt:240 */
   46     66   
        let mut output = crate::operation::query_precedence::builders::QueryPrecedenceOutputBuilder::default();
          67  +
        /* ClientBuilderInstantiator.kt:56 */
   47     68   
        output.build()
          69  +
        /* ProtocolParserGenerator.kt:77 */
   48     70   
    })
          71  +
    /* ProtocolParserGenerator.kt:71 */
   49     72   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_single_element_union.rs

@@ -1,1 +64,95 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:551 */
    2      3   
pub(crate) fn de_single_element_union<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<Option<crate::types::SingleElementUnion>, ::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:565 */
    8     10   
    let mut variant = None;
          11  +
    /* JsonParserGenerator.kt:567 */
    9     12   
    match tokens.next().transpose()? {
   10         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
   11         -
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => loop {
   12         -
            match tokens.next().transpose()? {
   13         -
                Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   14         -
                Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
   15         -
                    if let ::std::option::Option::Some(::std::result::Result::Ok(::aws_smithy_json::deserialize::Token::ValueNull { .. })) =
   16         -
                        tokens.peek()
   17         -
                    {
   18         -
                        let _ = tokens.next().expect("peek returned a token")?;
   19         -
                        continue;
   20         -
                    }
   21         -
                    let key = key.to_unescaped()?;
   22         -
                    if key == "__type" {
   23         -
                        ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
   24         -
                        continue;
   25         -
                    }
   26         -
                    if variant.is_some() {
   27         -
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   28         -
                            "encountered mixed variants in union",
   29         -
                        ));
   30         -
                    }
   31         -
                    variant = match key.as_ref() {
   32         -
                        "a" => Some(crate::types::SingleElementUnion::A(
   33         -
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   34         -
                                .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   35         -
                                .transpose()?
   36         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'a' cannot be null"))?,
   37         -
                        )),
   38         -
                        _ => {
          13  +
        /* JsonParserGenerator.kt:568 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
          14  +
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          15  +
            /* JsonParserGenerator.kt:684 */
          16  +
            loop {
          17  +
                /* JsonParserGenerator.kt:685 */
          18  +
                match tokens.next().transpose()? {
          19  +
                    /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          20  +
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          21  +
                        /* JsonParserGenerator.kt:576 */
          22  +
                        if let ::std::option::Option::Some(::std::result::Result::Ok(::aws_smithy_json::deserialize::Token::ValueNull { .. })) =
          23  +
                            tokens.peek()
          24  +
                        {
          25  +
                            let _ = tokens.next().expect("peek returned a token")?;
          26  +
                            continue;
          27  +
                        }
          28  +
                        /* JsonParserGenerator.kt:585 */
          29  +
                        let key = key.to_unescaped()?;
          30  +
                        if key == "__type" {
   39     31   
                            ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
   40         -
                            Some(crate::types::SingleElementUnion::Unknown)
          32  +
                            continue;
   41     33   
                        }
   42         -
                    };
   43         -
                }
   44         -
                other => {
   45         -
                    return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   46         -
                        "expected object key or end object, found: {:?}",
   47         -
                        other
   48         -
                    )))
          34  +
                        if variant.is_some() {
          35  +
                            return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          36  +
                                "encountered mixed variants in union",
          37  +
                            ));
          38  +
                        }
          39  +
                        /* JsonParserGenerator.kt:598 */
          40  +
                        variant = match key.as_ref() {
          41  +
                            /* JsonParserGenerator.kt:601 */
          42  +
                            "a" => {
          43  +
                                /* JsonParserGenerator.kt:611 */
          44  +
                                Some(crate::types::SingleElementUnion::A(
          45  +
                                    /* JsonParserGenerator.kt:354 */
          46  +
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
          47  +
                                        .map(|s|
          48  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          49  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
          50  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          51  +
                                        .transpose()?
          52  +
                                        /* JsonParserGenerator.kt:670 */
          53  +
                                        .ok_or_else(|| {
          54  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'a' cannot be null")
          55  +
                                        })?, /* JsonParserGenerator.kt:611 */
          56  +
                                ))
          57  +
                                /* JsonParserGenerator.kt:601 */
          58  +
                            }
          59  +
                            /* JsonParserGenerator.kt:621 */
          60  +
                            _ => {
          61  +
                                ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
          62  +
                                Some(crate::types::SingleElementUnion::Unknown)
          63  +
                            } /* JsonParserGenerator.kt:598 */
          64  +
                        };
          65  +
                        /* JsonParserGenerator.kt:686 */
          66  +
                    }
          67  +
                    /* JsonParserGenerator.kt:695 */
          68  +
                    other => {
          69  +
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
          70  +
                            "expected object key or end object, found: {:?}",
          71  +
                            other
          72  +
                        )))
          73  +
                    } /* JsonParserGenerator.kt:685 */
   49     74   
                }
          75  +
                /* JsonParserGenerator.kt:684 */
   50     76   
            }
   51         -
        },
          77  +
            /* JsonParserGenerator.kt:568 */
          78  +
        }
          79  +
        /* JsonParserGenerator.kt:642 */
   52     80   
        _ => {
   53     81   
            return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   54     82   
                "expected start object or null",
   55     83   
            ))
   56         -
        }
          84  +
        } /* JsonParserGenerator.kt:567 */
   57     85   
    }
          86  +
    /* JsonParserGenerator.kt:649 */
   58     87   
    if variant.is_none() {
   59     88   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   60     89   
            "Union did not contain a valid variant.",
   61     90   
        ));
   62     91   
    }
          92  +
    /* JsonParserGenerator.kt:657 */
   63     93   
    Ok(variant)
          94  +
    /* JsonParserGenerator.kt:551 */
   64     95   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_status_response.rs

@@ -1,1 +50,76 @@
    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_status_response_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::status_response::StatusResponseOutput, crate::operation::status_response::StatusResponseError> {
          10  +
    /* RustType.kt:516 */
    8     11   
    #[allow(unused_mut)]
          12  +
    /* ProtocolParserGenerator.kt:106 */
    9     13   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   10     14   
        .map_err(crate::operation::status_response::StatusResponseError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:122 */
   12     18   
    let error_code = match generic.code() {
   13     19   
        Some(code) => code,
   14     20   
        None => return Err(crate::operation::status_response::StatusResponseError::unhandled(generic)),
   15     21   
    };
   16     22   
   17     23   
    let _error_message = generic.message().map(|msg| msg.to_owned());
          24  +
    /* ProtocolParserGenerator.kt:133 */
   18     25   
    Err(match error_code {
          26  +
        /* ProtocolParserGenerator.kt:139 */
   19     27   
        "ExtraError" => crate::operation::status_response::StatusResponseError::ExtraError({
          28  +
            /* RustType.kt:516 */
   20     29   
            #[allow(unused_mut)]
   21         -
            let mut tmp = {
   22         -
                #[allow(unused_mut)]
   23         -
                let mut output = crate::types::error::builders::ExtraErrorBuilder::default();
   24         -
                output = crate::protocol_serde::shape_extra_error::de_extra_error_json_err(_response_body, output)
   25         -
                    .map_err(crate::operation::status_response::StatusResponseError::unhandled)?;
   26         -
                let output = output.meta(generic);
   27         -
                output.build()
   28         -
            };
          30  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          31  +
                /* ProtocolParserGenerator.kt:146 */ {
          32  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          33  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ExtraErrorBuilder::default();
          34  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_extra_error::de_extra_error_json_err(_response_body, output).map_err(crate::operation::status_response::StatusResponseError::unhandled)?;
          35  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          36  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          37  +
                /* ProtocolParserGenerator.kt:146 */}
          38  +
            /* ProtocolParserGenerator.kt:145 */;
          39  +
            /* ProtocolParserGenerator.kt:170 */
   29     40   
            if tmp.message.is_none() {
   30     41   
                tmp.message = _error_message;
   31     42   
            }
          43  +
            /* ProtocolParserGenerator.kt:179 */
   32     44   
            tmp
          45  +
            /* ProtocolParserGenerator.kt:139 */
   33     46   
        }),
   34         -
        _ => crate::operation::status_response::StatusResponseError::generic(generic),
          47  +
        /* ProtocolParserGenerator.kt:182 */
          48  +
        _ => crate::operation::status_response::StatusResponseError::generic(generic), /* ProtocolParserGenerator.kt:133 */
   35     49   
    })
          50  +
    /* ProtocolParserGenerator.kt:99 */
   36     51   
}
   37     52   
          53  +
/* RustType.kt:516 */
   38     54   
#[allow(clippy::unnecessary_wraps)]
          55  +
/* ProtocolParserGenerator.kt:71 */
   39     56   
pub fn de_status_response_http_response(
   40     57   
    _response_status: u16,
   41     58   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   42     59   
    _response_body: &[u8],
   43     60   
) -> std::result::Result<crate::operation::status_response::StatusResponseOutput, crate::operation::status_response::StatusResponseError> {
          61  +
    /* ProtocolParserGenerator.kt:77 */
   44     62   
    Ok({
          63  +
        /* RustType.kt:516 */
   45     64   
        #[allow(unused_mut)]
          65  +
        /* ProtocolParserGenerator.kt:240 */
   46     66   
        let mut output = crate::operation::status_response::builders::StatusResponseOutputBuilder::default();
   47         -
        output = output.set_field(Some(_response_status as _));
          67  +
        /* ProtocolParserGenerator.kt:267 */
          68  +
        output = output.set_field(
          69  +
            /* ProtocolParserGenerator.kt:332 */ Some(_response_status as _), /* ProtocolParserGenerator.kt:267 */
          70  +
        );
          71  +
        /* ClientBuilderInstantiator.kt:56 */
   48     72   
        output.build()
          73  +
        /* ProtocolParserGenerator.kt:77 */
   49     74   
    })
          75  +
    /* ProtocolParserGenerator.kt:71 */
   50     76   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_string_payload.rs

@@ -1,1 +50,77 @@
    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_string_payload_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::string_payload::StringPayloadOutput, crate::operation::string_payload::StringPayloadError> {
          10  +
    /* RustType.kt:516 */
    8     11   
    #[allow(unused_mut)]
          12  +
    /* ProtocolParserGenerator.kt:106 */
    9     13   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   10     14   
        .map_err(crate::operation::string_payload::StringPayloadError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:122 */
   12     18   
    let error_code = match generic.code() {
   13     19   
        Some(code) => code,
   14     20   
        None => return Err(crate::operation::string_payload::StringPayloadError::unhandled(generic)),
   15     21   
    };
   16     22   
   17     23   
    let _error_message = generic.message().map(|msg| msg.to_owned());
          24  +
    /* ProtocolParserGenerator.kt:133 */
   18     25   
    Err(match error_code {
          26  +
        /* ProtocolParserGenerator.kt:139 */
   19     27   
        "ExtraError" => crate::operation::string_payload::StringPayloadError::ExtraError({
          28  +
            /* RustType.kt:516 */
   20     29   
            #[allow(unused_mut)]
   21         -
            let mut tmp = {
   22         -
                #[allow(unused_mut)]
   23         -
                let mut output = crate::types::error::builders::ExtraErrorBuilder::default();
   24         -
                output = crate::protocol_serde::shape_extra_error::de_extra_error_json_err(_response_body, output)
   25         -
                    .map_err(crate::operation::string_payload::StringPayloadError::unhandled)?;
   26         -
                let output = output.meta(generic);
   27         -
                output.build()
   28         -
            };
          30  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          31  +
                /* ProtocolParserGenerator.kt:146 */ {
          32  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          33  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ExtraErrorBuilder::default();
          34  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_extra_error::de_extra_error_json_err(_response_body, output).map_err(crate::operation::string_payload::StringPayloadError::unhandled)?;
          35  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          36  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          37  +
                /* ProtocolParserGenerator.kt:146 */}
          38  +
            /* ProtocolParserGenerator.kt:145 */;
          39  +
            /* ProtocolParserGenerator.kt:170 */
   29     40   
            if tmp.message.is_none() {
   30     41   
                tmp.message = _error_message;
   31     42   
            }
          43  +
            /* ProtocolParserGenerator.kt:179 */
   32     44   
            tmp
          45  +
            /* ProtocolParserGenerator.kt:139 */
   33     46   
        }),
   34         -
        _ => crate::operation::string_payload::StringPayloadError::generic(generic),
          47  +
        /* ProtocolParserGenerator.kt:182 */
          48  +
        _ => crate::operation::string_payload::StringPayloadError::generic(generic), /* ProtocolParserGenerator.kt:133 */
   35     49   
    })
          50  +
    /* ProtocolParserGenerator.kt:99 */
   36     51   
}
   37     52   
          53  +
/* RustType.kt:516 */
   38     54   
#[allow(clippy::unnecessary_wraps)]
          55  +
/* ProtocolParserGenerator.kt:71 */
   39     56   
pub fn de_string_payload_http_response(
   40     57   
    _response_status: u16,
   41     58   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   42     59   
    _response_body: &[u8],
   43     60   
) -> std::result::Result<crate::operation::string_payload::StringPayloadOutput, crate::operation::string_payload::StringPayloadError> {
          61  +
    /* ProtocolParserGenerator.kt:77 */
   44     62   
    Ok({
          63  +
        /* RustType.kt:516 */
   45     64   
        #[allow(unused_mut)]
          65  +
        /* ProtocolParserGenerator.kt:240 */
   46     66   
        let mut output = crate::operation::string_payload::builders::StringPayloadOutputBuilder::default();
   47         -
        output = output.set_payload(crate::protocol_serde::shape_string_payload_output::de_payload_payload(_response_body)?);
          67  +
        /* ProtocolParserGenerator.kt:267 */
          68  +
        output = output.set_payload(
          69  +
            /* ProtocolParserGenerator.kt:327 */
          70  +
            crate::protocol_serde::shape_string_payload_output::de_payload_payload(_response_body)?, /* ProtocolParserGenerator.kt:267 */
          71  +
        );
          72  +
        /* ClientBuilderInstantiator.kt:56 */
   48     73   
        output.build()
          74  +
        /* ProtocolParserGenerator.kt:77 */
   49     75   
    })
          76  +
    /* ProtocolParserGenerator.kt:71 */
   50     77   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_string_payload_input.rs

@@ -1,1 +10,20 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* HttpBoundProtocolPayloadGenerator.kt:311 */
    2      3   
pub fn ser_payload_http_payload(
    3      4   
    payload: ::std::option::Option<::std::string::String>,
    4      5   
) -> ::std::result::Result<::std::vec::Vec<u8>, ::aws_smithy_types::error::operation::BuildError> {
           6  +
    /* HttpBoundProtocolPayloadGenerator.kt:320 */
    5      7   
    let payload = match payload {
    6      8   
        Some(t) => t,
    7         -
        None => return Ok(Vec::new()),
           9  +
        None => {
          10  +
            return Ok(
          11  +
                /* HttpBoundProtocolPayloadGenerator.kt:332 */ Vec::new(), /* HttpBoundProtocolPayloadGenerator.kt:320 */
          12  +
            )
          13  +
        }
    8     14   
    };
    9         -
    Ok(payload.into_bytes())
          15  +
    /* HttpBoundProtocolPayloadGenerator.kt:345 */
          16  +
    Ok(
          17  +
        /* HttpBoundProtocolPayloadGenerator.kt:366 */ payload.into_bytes(), /* HttpBoundProtocolPayloadGenerator.kt:345 */
          18  +
    )
          19  +
    /* HttpBoundProtocolPayloadGenerator.kt:311 */
   10     20   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_string_payload_output.rs

@@ -1,1 +11,17 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* HttpBindingGenerator.kt:248 */
    2      3   
pub(crate) fn de_payload_payload(
    3      4   
    body: &[u8],
    4      5   
) -> std::result::Result<::std::option::Option<::std::string::String>, crate::operation::string_payload::StringPayloadError> {
           6  +
    /* HttpBindingGenerator.kt:319 */
    5      7   
    (!body.is_empty())
    6      8   
        .then(|| {
           9  +
            /* HttpBindingGenerator.kt:325 */
    7     10   
            let body_str = std::str::from_utf8(body).map_err(crate::operation::string_payload::StringPayloadError::unhandled)?;
          11  +
            /* HttpBindingGenerator.kt:344 */
    8     12   
            Ok(body_str.to_string())
          13  +
            /* HttpBindingGenerator.kt:319 */
    9     14   
        })
   10     15   
        .transpose()
          16  +
    /* HttpBindingGenerator.kt:248 */
   11     17   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_validation_exception.rs

@@ -1,1 +40,67 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:148 */
    2      3   
pub(crate) fn de_validation_exception_json_err(
    3      4   
    value: &[u8],
    4      5   
    mut builder: crate::types::error::builders::ValidationErrorBuilder,
    5      6   
) -> ::std::result::Result<crate::types::error::builders::ValidationErrorBuilder, ::aws_smithy_json::deserialize::error::DeserializeError> {
           7  +
    /* JsonParserGenerator.kt:153 */
    6      8   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
    7      9   
    let tokens = &mut tokens_owned;
    8     10   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
          11  +
    /* JsonParserGenerator.kt:684 */
    9     12   
    loop {
          13  +
        /* JsonParserGenerator.kt:685 */
   10     14   
        match tokens.next().transpose()? {
   11         -
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   12         -
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
   13         -
                "message" => {
   14         -
                    builder = builder.set_message(
   15         -
                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   16         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   17         -
                            .transpose()?,
   18         -
                    );
          15  +
            /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          16  +
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          17  +
                /* JsonParserGenerator.kt:260 */
          18  +
                match key.to_unescaped()?.as_ref() {
          19  +
                    /* JsonParserGenerator.kt:262 */
          20  +
                    "message" => {
          21  +
                        /* JsonParserGenerator.kt:265 */
          22  +
                        builder = builder.set_message(
          23  +
                            /* JsonParserGenerator.kt:354 */
          24  +
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
          25  +
                                .map(|s|
          26  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          27  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
          28  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          29  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
          30  +
                        );
          31  +
                        /* JsonParserGenerator.kt:262 */
          32  +
                    }
          33  +
                    /* JsonParserGenerator.kt:262 */
          34  +
                    "fieldList" => {
          35  +
                        /* JsonParserGenerator.kt:265 */
          36  +
                        builder = builder.set_field_list(
          37  +
                            /* JsonParserGenerator.kt:451 */crate::protocol_serde::shape_validation_exception_field_list::de_validation_exception_field_list(tokens)?
          38  +
                        /* JsonParserGenerator.kt:265 */);
          39  +
                        /* JsonParserGenerator.kt:262 */
          40  +
                    }
          41  +
                    /* JsonParserGenerator.kt:290 */
          42  +
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
   19     43   
                }
   20         -
                "fieldList" => {
   21         -
                    builder = builder
   22         -
                        .set_field_list(crate::protocol_serde::shape_validation_exception_field_list::de_validation_exception_field_list(tokens)?);
   23         -
                }
   24         -
                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   25         -
            },
          44  +
                /* JsonParserGenerator.kt:686 */
          45  +
            }
          46  +
            /* JsonParserGenerator.kt:695 */
   26     47   
            other => {
   27     48   
                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   28     49   
                    "expected object key or end object, found: {:?}",
   29     50   
                    other
   30     51   
                )))
   31         -
            }
          52  +
            } /* JsonParserGenerator.kt:685 */
   32     53   
        }
          54  +
        /* JsonParserGenerator.kt:684 */
   33     55   
    }
          56  +
    /* JsonParserGenerator.kt:250 */
   34     57   
    if tokens.next().is_some() {
          58  +
        /* JsonParserGenerator.kt:251 */
   35     59   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   36     60   
            "found more JSON tokens after completing parsing",
   37     61   
        ));
          62  +
        /* JsonParserGenerator.kt:250 */
   38     63   
    }
          64  +
    /* JsonParserGenerator.kt:163 */
   39     65   
    Ok(builder)
          66  +
    /* JsonParserGenerator.kt:148 */
   40     67   
}

tmp-codegen-diff/codegen-client-test/rest_json_extras/rust-client-codegen/src/protocol_serde/shape_validation_exception_field.rs

@@ -1,1 +51,86 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:516 */
    2      3   
pub(crate) fn de_validation_exception_field<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<Option<crate::types::ValidationExceptionField>, ::aws_smithy_json::deserialize::error::DeserializeError>
    5      6   
where
    6      7   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
    7      8   
{
           9  +
    /* JsonParserGenerator.kt:712 */
    8     10   
    match tokens.next().transpose()? {
    9         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          11  +
        /* JsonParserGenerator.kt:713 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   10     12   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          13  +
            /* RustType.kt:516 */
   11     14   
            #[allow(unused_mut)]
          15  +
            /* JsonParserGenerator.kt:526 */
   12     16   
            let mut builder = crate::types::builders::ValidationExceptionFieldBuilder::default();
          17  +
            /* JsonParserGenerator.kt:684 */
   13     18   
            loop {
          19  +
                /* JsonParserGenerator.kt:685 */
   14     20   
                match tokens.next().transpose()? {
   15         -
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   16         -
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
   17         -
                        "path" => {
   18         -
                            builder = builder.set_path(
   19         -
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   20         -
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   21         -
                                    .transpose()?,
   22         -
                            );
          21  +
                    /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          22  +
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          23  +
                        /* JsonParserGenerator.kt:260 */
          24  +
                        match key.to_unescaped()?.as_ref() {
          25  +
                            /* JsonParserGenerator.kt:262 */
          26  +
                            "path" => {
          27  +
                                /* JsonParserGenerator.kt:265 */
          28  +
                                builder = builder.set_path(
          29  +
                                    /* JsonParserGenerator.kt:354 */
          30  +
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
          31  +
                                        .map(|s|
          32  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          33  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
          34  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          35  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
          36  +
                                );
          37  +
                                /* JsonParserGenerator.kt:262 */
          38  +
                            }
          39  +
                            /* JsonParserGenerator.kt:262 */
          40  +
                            "message" => {
          41  +
                                /* JsonParserGenerator.kt:265 */
          42  +
                                builder = builder.set_message(
          43  +
                                    /* JsonParserGenerator.kt:354 */
          44  +
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
          45  +
                                        .map(|s|
          46  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          47  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
          48  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          49  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
          50  +
                                );
          51  +
                                /* JsonParserGenerator.kt:262 */
          52  +
                            }
          53  +
                            /* JsonParserGenerator.kt:290 */
          54  +
                            _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
   23     55   
                        }
   24         -
                        "message" => {
   25         -
                            builder = builder.set_message(
   26         -
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   27         -
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   28         -
                                    .transpose()?,
   29         -
                            );
   30         -
                        }
   31         -
                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   32         -
                    },
          56  +
                        /* JsonParserGenerator.kt:686 */
          57  +
                    }
          58  +
                    /* JsonParserGenerator.kt:695 */
   33     59   
                    other => {
   34     60   
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   35     61   
                            "expected object key or end object, found: {:?}",
   36     62   
                            other
   37     63   
                        )))
   38         -
                    }
          64  +
                    } /* JsonParserGenerator.kt:685 */
   39     65   
                }
          66  +
                /* JsonParserGenerator.kt:684 */
   40     67   
            }
          68  +
            /* JsonParserGenerator.kt:540 */
   41     69   
            Ok(Some(
   42     70   
                crate::serde_util::validation_exception_field_correct_errors(builder)
   43     71   
                    .build()
   44     72   
                    .map_err(|err| ::aws_smithy_json::deserialize::error::DeserializeError::custom_source("Response was invalid", err))?,
   45     73   
            ))
          74  +
            /* JsonParserGenerator.kt:713 */
   46     75   
        }
   47         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   48         -
            "expected start object or null",
   49         -
        )),
          76  +
        /* JsonParserGenerator.kt:722 */
          77  +
        _ => {
          78  +
            /* JsonParserGenerator.kt:723 */
          79  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          80  +
                "expected start object or null",
          81  +
            ))
          82  +
            /* JsonParserGenerator.kt:722 */
          83  +
        } /* JsonParserGenerator.kt:712 */
   50     84   
    }
          85  +
    /* JsonParserGenerator.kt:516 */
   51     86   
}