Server Test

Server Test

rev. a23878c81aa229b05ce2d03d6aa4e35b4eb4ed5a (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_malformed_long.rs

@@ -176,176 +257,257 @@
  196    196   
    crate::input::malformed_long_input::Builder,
  197    197   
    ::aws_smithy_json::deserialize::error::DeserializeError,
  198    198   
> {
  199    199   
    /* JsonParserGenerator.kt:158 */
  200    200   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
  201    201   
        crate::protocol_serde::or_empty_doc(_value),
  202    202   
    )
  203    203   
    .peekable();
  204    204   
    let tokens = &mut tokens_owned;
  205    205   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
  206         -
    /* JsonParserGenerator.kt:721 */
         206  +
    /* JsonParserGenerator.kt:703 */
  207    207   
    loop {
  208         -
        /* JsonParserGenerator.kt:722 */
         208  +
        /* JsonParserGenerator.kt:704 */
  209    209   
        match tokens.next().transpose()? {
  210         -
            /* JsonParserGenerator.kt:723 */
         210  +
            /* JsonParserGenerator.kt:705 */
  211    211   
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
  212    212   
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
  213    213   
                /* JsonParserGenerator.kt:265 */
  214    214   
                match key.to_unescaped()?.as_ref() {
  215    215   
                    /* JsonParserGenerator.kt:267 */
  216    216   
                    "longInBody" => {
  217    217   
                        /* JsonParserGenerator.kt:277 */
  218    218   
                        builder = builder.set_long_in_body(
  219    219   
                            /* JsonParserGenerator.kt:372 */
  220    220   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(
  221    221   
                                tokens.next(),
  222    222   
                            )?
  223    223   
                            .map(i64::try_from)
  224    224   
                            .transpose()?, /* JsonParserGenerator.kt:277 */
  225    225   
                        );
  226    226   
                        /* JsonParserGenerator.kt:267 */
  227    227   
                    }
  228    228   
                    /* JsonParserGenerator.kt:295 */
  229    229   
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
  230    230   
                }
  231         -
                /* JsonParserGenerator.kt:723 */
         231  +
                /* JsonParserGenerator.kt:705 */
  232    232   
            }
  233         -
            /* JsonParserGenerator.kt:732 */
         233  +
            /* JsonParserGenerator.kt:714 */
  234    234   
            other => {
  235    235   
                return Err(
  236    236   
                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  237    237   
                        "expected object key or end object, found: {other:?}"
  238    238   
                    )),
  239    239   
                )
  240         -
            } /* JsonParserGenerator.kt:722 */
         240  +
            } /* JsonParserGenerator.kt:704 */
  241    241   
        }
  242         -
        /* JsonParserGenerator.kt:721 */
         242  +
        /* JsonParserGenerator.kt:703 */
  243    243   
    }
  244    244   
    /* JsonParserGenerator.kt:255 */
  245    245   
    if tokens.next().is_some() {
  246    246   
        /* JsonParserGenerator.kt:256 */
  247    247   
        return Err(
  248    248   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  249    249   
                "found more JSON tokens after completing parsing",
  250    250   
            ),
  251    251   
        );
  252    252   
        /* JsonParserGenerator.kt:255 */

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_malformed_map.rs

@@ -80,80 +160,160 @@
  100    100   
    crate::input::malformed_map_input::Builder,
  101    101   
    ::aws_smithy_json::deserialize::error::DeserializeError,
  102    102   
> {
  103    103   
    /* JsonParserGenerator.kt:158 */
  104    104   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
  105    105   
        crate::protocol_serde::or_empty_doc(_value),
  106    106   
    )
  107    107   
    .peekable();
  108    108   
    let tokens = &mut tokens_owned;
  109    109   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
  110         -
    /* JsonParserGenerator.kt:721 */
         110  +
    /* JsonParserGenerator.kt:703 */
  111    111   
    loop {
  112         -
        /* JsonParserGenerator.kt:722 */
         112  +
        /* JsonParserGenerator.kt:704 */
  113    113   
        match tokens.next().transpose()? {
  114         -
            /* JsonParserGenerator.kt:723 */
         114  +
            /* JsonParserGenerator.kt:705 */
  115    115   
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
  116    116   
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
  117    117   
                /* JsonParserGenerator.kt:265 */
  118    118   
                match key.to_unescaped()?.as_ref() {
  119    119   
                    /* JsonParserGenerator.kt:267 */
  120    120   
                    "bodyMap" => {
  121    121   
                        /* JsonParserGenerator.kt:277 */
  122    122   
                        builder =
  123    123   
                            builder.set_body_map(
  124         -
                                /* JsonParserGenerator.kt:546 */
         124  +
                                /* JsonParserGenerator.kt:528 */
  125    125   
                                crate::protocol_serde::shape_simple_map::de_simple_map(
  126    126   
                                    tokens, _value,
  127    127   
                                )?, /* JsonParserGenerator.kt:277 */
  128    128   
                            );
  129    129   
                        /* JsonParserGenerator.kt:267 */
  130    130   
                    }
  131    131   
                    /* JsonParserGenerator.kt:295 */
  132    132   
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
  133    133   
                }
  134         -
                /* JsonParserGenerator.kt:723 */
         134  +
                /* JsonParserGenerator.kt:705 */
  135    135   
            }
  136         -
            /* JsonParserGenerator.kt:732 */
         136  +
            /* JsonParserGenerator.kt:714 */
  137    137   
            other => {
  138    138   
                return Err(
  139    139   
                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  140    140   
                        "expected object key or end object, found: {other:?}"
  141    141   
                    )),
  142    142   
                )
  143         -
            } /* JsonParserGenerator.kt:722 */
         143  +
            } /* JsonParserGenerator.kt:704 */
  144    144   
        }
  145         -
        /* JsonParserGenerator.kt:721 */
         145  +
        /* JsonParserGenerator.kt:703 */
  146    146   
    }
  147    147   
    /* JsonParserGenerator.kt:255 */
  148    148   
    if tokens.next().is_some() {
  149    149   
        /* JsonParserGenerator.kt:256 */
  150    150   
        return Err(
  151    151   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  152    152   
                "found more JSON tokens after completing parsing",
  153    153   
            ),
  154    154   
        );
  155    155   
        /* JsonParserGenerator.kt:255 */

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_malformed_request_body.rs

@@ -80,80 +173,173 @@
  100    100   
    crate::input::malformed_request_body_input::Builder,
  101    101   
    ::aws_smithy_json::deserialize::error::DeserializeError,
  102    102   
> {
  103    103   
    /* JsonParserGenerator.kt:158 */
  104    104   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
  105    105   
        crate::protocol_serde::or_empty_doc(_value),
  106    106   
    )
  107    107   
    .peekable();
  108    108   
    let tokens = &mut tokens_owned;
  109    109   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
  110         -
    /* JsonParserGenerator.kt:721 */
         110  +
    /* JsonParserGenerator.kt:703 */
  111    111   
    loop {
  112         -
        /* JsonParserGenerator.kt:722 */
         112  +
        /* JsonParserGenerator.kt:704 */
  113    113   
        match tokens.next().transpose()? {
  114         -
            /* JsonParserGenerator.kt:723 */
         114  +
            /* JsonParserGenerator.kt:705 */
  115    115   
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
  116    116   
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
  117    117   
                /* JsonParserGenerator.kt:265 */
  118    118   
                match key.to_unescaped()?.as_ref() {
  119    119   
                    /* JsonParserGenerator.kt:267 */
  120    120   
                    "float" => {
  121    121   
                        /* JsonParserGenerator.kt:277 */
  122    122   
                        builder = builder.set_float(
  123    123   
                            /* JsonParserGenerator.kt:368 */
  124    124   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(
  125    125   
                                tokens.next(),
  126    126   
                            )?
  127    127   
                            .map(|v| v.to_f32_lossy()), /* JsonParserGenerator.kt:277 */
  128    128   
                        );
  129    129   
                        /* JsonParserGenerator.kt:267 */
  130    130   
                    }
  131    131   
                    /* JsonParserGenerator.kt:267 */
  132    132   
                    "int" => {
  133    133   
                        /* JsonParserGenerator.kt:277 */
  134    134   
                        builder = builder.set_int(
  135    135   
                            /* JsonParserGenerator.kt:372 */
  136    136   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(
  137    137   
                                tokens.next(),
  138    138   
                            )?
  139    139   
                            .map(i32::try_from)
  140    140   
                            .transpose()?, /* JsonParserGenerator.kt:277 */
  141    141   
                        );
  142    142   
                        /* JsonParserGenerator.kt:267 */
  143    143   
                    }
  144    144   
                    /* JsonParserGenerator.kt:295 */
  145    145   
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
  146    146   
                }
  147         -
                /* JsonParserGenerator.kt:723 */
         147  +
                /* JsonParserGenerator.kt:705 */
  148    148   
            }
  149         -
            /* JsonParserGenerator.kt:732 */
         149  +
            /* JsonParserGenerator.kt:714 */
  150    150   
            other => {
  151    151   
                return Err(
  152    152   
                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  153    153   
                        "expected object key or end object, found: {other:?}"
  154    154   
                    )),
  155    155   
                )
  156         -
            } /* JsonParserGenerator.kt:722 */
         156  +
            } /* JsonParserGenerator.kt:704 */
  157    157   
        }
  158         -
        /* JsonParserGenerator.kt:721 */
         158  +
        /* JsonParserGenerator.kt:703 */
  159    159   
    }
  160    160   
    /* JsonParserGenerator.kt:255 */
  161    161   
    if tokens.next().is_some() {
  162    162   
        /* JsonParserGenerator.kt:256 */
  163    163   
        return Err(
  164    164   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  165    165   
                "found more JSON tokens after completing parsing",
  166    166   
            ),
  167    167   
        );
  168    168   
        /* JsonParserGenerator.kt:255 */

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_malformed_short.rs

@@ -178,178 +259,259 @@
  198    198   
    crate::input::malformed_short_input::Builder,
  199    199   
    ::aws_smithy_json::deserialize::error::DeserializeError,
  200    200   
> {
  201    201   
    /* JsonParserGenerator.kt:158 */
  202    202   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
  203    203   
        crate::protocol_serde::or_empty_doc(_value),
  204    204   
    )
  205    205   
    .peekable();
  206    206   
    let tokens = &mut tokens_owned;
  207    207   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
  208         -
    /* JsonParserGenerator.kt:721 */
         208  +
    /* JsonParserGenerator.kt:703 */
  209    209   
    loop {
  210         -
        /* JsonParserGenerator.kt:722 */
         210  +
        /* JsonParserGenerator.kt:704 */
  211    211   
        match tokens.next().transpose()? {
  212         -
            /* JsonParserGenerator.kt:723 */
         212  +
            /* JsonParserGenerator.kt:705 */
  213    213   
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
  214    214   
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
  215    215   
                /* JsonParserGenerator.kt:265 */
  216    216   
                match key.to_unescaped()?.as_ref() {
  217    217   
                    /* JsonParserGenerator.kt:267 */
  218    218   
                    "shortInBody" => {
  219    219   
                        /* JsonParserGenerator.kt:277 */
  220    220   
                        builder = builder.set_short_in_body(
  221    221   
                            /* JsonParserGenerator.kt:372 */
  222    222   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(
  223    223   
                                tokens.next(),
  224    224   
                            )?
  225    225   
                            .map(i16::try_from)
  226    226   
                            .transpose()?, /* JsonParserGenerator.kt:277 */
  227    227   
                        );
  228    228   
                        /* JsonParserGenerator.kt:267 */
  229    229   
                    }
  230    230   
                    /* JsonParserGenerator.kt:295 */
  231    231   
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
  232    232   
                }
  233         -
                /* JsonParserGenerator.kt:723 */
         233  +
                /* JsonParserGenerator.kt:705 */
  234    234   
            }
  235         -
            /* JsonParserGenerator.kt:732 */
         235  +
            /* JsonParserGenerator.kt:714 */
  236    236   
            other => {
  237    237   
                return Err(
  238    238   
                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  239    239   
                        "expected object key or end object, found: {other:?}"
  240    240   
                    )),
  241    241   
                )
  242         -
            } /* JsonParserGenerator.kt:722 */
         242  +
            } /* JsonParserGenerator.kt:704 */
  243    243   
        }
  244         -
        /* JsonParserGenerator.kt:721 */
         244  +
        /* JsonParserGenerator.kt:703 */
  245    245   
    }
  246    246   
    /* JsonParserGenerator.kt:255 */
  247    247   
    if tokens.next().is_some() {
  248    248   
        /* JsonParserGenerator.kt:256 */
  249    249   
        return Err(
  250    250   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  251    251   
                "found more JSON tokens after completing parsing",
  252    252   
            ),
  253    253   
        );
  254    254   
        /* JsonParserGenerator.kt:255 */

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_malformed_timestamp_body_date_time.rs

@@ -129,129 +212,212 @@
  149    149   
    crate::input::malformed_timestamp_body_date_time_input::Builder,
  150    150   
    ::aws_smithy_json::deserialize::error::DeserializeError,
  151    151   
> {
  152    152   
    /* JsonParserGenerator.kt:158 */
  153    153   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
  154    154   
        crate::protocol_serde::or_empty_doc(_value),
  155    155   
    )
  156    156   
    .peekable();
  157    157   
    let tokens = &mut tokens_owned;
  158    158   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
  159         -
    /* JsonParserGenerator.kt:721 */
         159  +
    /* JsonParserGenerator.kt:703 */
  160    160   
    loop {
  161         -
        /* JsonParserGenerator.kt:722 */
         161  +
        /* JsonParserGenerator.kt:704 */
  162    162   
        match tokens.next().transpose()? {
  163         -
            /* JsonParserGenerator.kt:723 */
         163  +
            /* JsonParserGenerator.kt:705 */
  164    164   
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
  165    165   
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
  166    166   
                /* JsonParserGenerator.kt:265 */
  167    167   
                match key.to_unescaped()?.as_ref() {
  168    168   
                    /* JsonParserGenerator.kt:267 */
  169    169   
                    "timestamp" => {
  170    170   
                        /* JsonParserGenerator.kt:281 */
  171    171   
                        if let Some(v) =
  172    172   
                            /* JsonParserGenerator.kt:421 */
  173    173   
                            ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
  174    174   
                                    tokens.next(),
  175    175   
                                    ::aws_smithy_types::date_time::Format::DateTime,
  176    176   
                                )?
  177    177   
                        /* JsonParserGenerator.kt:283 */
  178    178   
                        {
  179    179   
                            builder = builder.set_timestamp(v);
  180    180   
                        }
  181    181   
                        /* JsonParserGenerator.kt:267 */
  182    182   
                    }
  183    183   
                    /* JsonParserGenerator.kt:295 */
  184    184   
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
  185    185   
                }
  186         -
                /* JsonParserGenerator.kt:723 */
         186  +
                /* JsonParserGenerator.kt:705 */
  187    187   
            }
  188         -
            /* JsonParserGenerator.kt:732 */
         188  +
            /* JsonParserGenerator.kt:714 */
  189    189   
            other => {
  190    190   
                return Err(
  191    191   
                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  192    192   
                        "expected object key or end object, found: {other:?}"
  193    193   
                    )),
  194    194   
                )
  195         -
            } /* JsonParserGenerator.kt:722 */
         195  +
            } /* JsonParserGenerator.kt:704 */
  196    196   
        }
  197         -
        /* JsonParserGenerator.kt:721 */
         197  +
        /* JsonParserGenerator.kt:703 */
  198    198   
    }
  199    199   
    /* JsonParserGenerator.kt:255 */
  200    200   
    if tokens.next().is_some() {
  201    201   
        /* JsonParserGenerator.kt:256 */
  202    202   
        return Err(
  203    203   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  204    204   
                "found more JSON tokens after completing parsing",
  205    205   
            ),
  206    206   
        );
  207    207   
        /* JsonParserGenerator.kt:255 */

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_malformed_timestamp_body_default.rs

@@ -129,129 +212,212 @@
  149    149   
    crate::input::malformed_timestamp_body_default_input::Builder,
  150    150   
    ::aws_smithy_json::deserialize::error::DeserializeError,
  151    151   
> {
  152    152   
    /* JsonParserGenerator.kt:158 */
  153    153   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
  154    154   
        crate::protocol_serde::or_empty_doc(_value),
  155    155   
    )
  156    156   
    .peekable();
  157    157   
    let tokens = &mut tokens_owned;
  158    158   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
  159         -
    /* JsonParserGenerator.kt:721 */
         159  +
    /* JsonParserGenerator.kt:703 */
  160    160   
    loop {
  161         -
        /* JsonParserGenerator.kt:722 */
         161  +
        /* JsonParserGenerator.kt:704 */
  162    162   
        match tokens.next().transpose()? {
  163         -
            /* JsonParserGenerator.kt:723 */
         163  +
            /* JsonParserGenerator.kt:705 */
  164    164   
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
  165    165   
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
  166    166   
                /* JsonParserGenerator.kt:265 */
  167    167   
                match key.to_unescaped()?.as_ref() {
  168    168   
                    /* JsonParserGenerator.kt:267 */
  169    169   
                    "timestamp" => {
  170    170   
                        /* JsonParserGenerator.kt:281 */
  171    171   
                        if let Some(v) =
  172    172   
                            /* JsonParserGenerator.kt:421 */
  173    173   
                            ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
  174    174   
                                    tokens.next(),
  175    175   
                                    ::aws_smithy_types::date_time::Format::EpochSeconds,
  176    176   
                                )?
  177    177   
                        /* JsonParserGenerator.kt:283 */
  178    178   
                        {
  179    179   
                            builder = builder.set_timestamp(v);
  180    180   
                        }
  181    181   
                        /* JsonParserGenerator.kt:267 */
  182    182   
                    }
  183    183   
                    /* JsonParserGenerator.kt:295 */
  184    184   
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
  185    185   
                }
  186         -
                /* JsonParserGenerator.kt:723 */
         186  +
                /* JsonParserGenerator.kt:705 */
  187    187   
            }
  188         -
            /* JsonParserGenerator.kt:732 */
         188  +
            /* JsonParserGenerator.kt:714 */
  189    189   
            other => {
  190    190   
                return Err(
  191    191   
                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  192    192   
                        "expected object key or end object, found: {other:?}"
  193    193   
                    )),
  194    194   
                )
  195         -
            } /* JsonParserGenerator.kt:722 */
         195  +
            } /* JsonParserGenerator.kt:704 */
  196    196   
        }
  197         -
        /* JsonParserGenerator.kt:721 */
         197  +
        /* JsonParserGenerator.kt:703 */
  198    198   
    }
  199    199   
    /* JsonParserGenerator.kt:255 */
  200    200   
    if tokens.next().is_some() {
  201    201   
        /* JsonParserGenerator.kt:256 */
  202    202   
        return Err(
  203    203   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  204    204   
                "found more JSON tokens after completing parsing",
  205    205   
            ),
  206    206   
        );
  207    207   
        /* JsonParserGenerator.kt:255 */

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_malformed_timestamp_body_http_date.rs

@@ -129,129 +212,212 @@
  149    149   
    crate::input::malformed_timestamp_body_http_date_input::Builder,
  150    150   
    ::aws_smithy_json::deserialize::error::DeserializeError,
  151    151   
> {
  152    152   
    /* JsonParserGenerator.kt:158 */
  153    153   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
  154    154   
        crate::protocol_serde::or_empty_doc(_value),
  155    155   
    )
  156    156   
    .peekable();
  157    157   
    let tokens = &mut tokens_owned;
  158    158   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
  159         -
    /* JsonParserGenerator.kt:721 */
         159  +
    /* JsonParserGenerator.kt:703 */
  160    160   
    loop {
  161         -
        /* JsonParserGenerator.kt:722 */
         161  +
        /* JsonParserGenerator.kt:704 */
  162    162   
        match tokens.next().transpose()? {
  163         -
            /* JsonParserGenerator.kt:723 */
         163  +
            /* JsonParserGenerator.kt:705 */
  164    164   
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
  165    165   
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
  166    166   
                /* JsonParserGenerator.kt:265 */
  167    167   
                match key.to_unescaped()?.as_ref() {
  168    168   
                    /* JsonParserGenerator.kt:267 */
  169    169   
                    "timestamp" => {
  170    170   
                        /* JsonParserGenerator.kt:281 */
  171    171   
                        if let Some(v) =
  172    172   
                            /* JsonParserGenerator.kt:421 */
  173    173   
                            ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
  174    174   
                                    tokens.next(),
  175    175   
                                    ::aws_smithy_types::date_time::Format::HttpDate,
  176    176   
                                )?
  177    177   
                        /* JsonParserGenerator.kt:283 */
  178    178   
                        {
  179    179   
                            builder = builder.set_timestamp(v);
  180    180   
                        }
  181    181   
                        /* JsonParserGenerator.kt:267 */
  182    182   
                    }
  183    183   
                    /* JsonParserGenerator.kt:295 */
  184    184   
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
  185    185   
                }
  186         -
                /* JsonParserGenerator.kt:723 */
         186  +
                /* JsonParserGenerator.kt:705 */
  187    187   
            }
  188         -
            /* JsonParserGenerator.kt:732 */
         188  +
            /* JsonParserGenerator.kt:714 */
  189    189   
            other => {
  190    190   
                return Err(
  191    191   
                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  192    192   
                        "expected object key or end object, found: {other:?}"
  193    193   
                    )),
  194    194   
                )
  195         -
            } /* JsonParserGenerator.kt:722 */
         195  +
            } /* JsonParserGenerator.kt:704 */
  196    196   
        }
  197         -
        /* JsonParserGenerator.kt:721 */
         197  +
        /* JsonParserGenerator.kt:703 */
  198    198   
    }
  199    199   
    /* JsonParserGenerator.kt:255 */
  200    200   
    if tokens.next().is_some() {
  201    201   
        /* JsonParserGenerator.kt:256 */
  202    202   
        return Err(
  203    203   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  204    204   
                "found more JSON tokens after completing parsing",
  205    205   
            ),
  206    206   
        );
  207    207   
        /* JsonParserGenerator.kt:255 */

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_malformed_union.rs

@@ -80,80 +159,159 @@
  100    100   
    crate::input::malformed_union_input::Builder,
  101    101   
    ::aws_smithy_json::deserialize::error::DeserializeError,
  102    102   
> {
  103    103   
    /* JsonParserGenerator.kt:158 */
  104    104   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
  105    105   
        crate::protocol_serde::or_empty_doc(_value),
  106    106   
    )
  107    107   
    .peekable();
  108    108   
    let tokens = &mut tokens_owned;
  109    109   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
  110         -
    /* JsonParserGenerator.kt:721 */
         110  +
    /* JsonParserGenerator.kt:703 */
  111    111   
    loop {
  112         -
        /* JsonParserGenerator.kt:722 */
         112  +
        /* JsonParserGenerator.kt:704 */
  113    113   
        match tokens.next().transpose()? {
  114         -
            /* JsonParserGenerator.kt:723 */
         114  +
            /* JsonParserGenerator.kt:705 */
  115    115   
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
  116    116   
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
  117    117   
                /* JsonParserGenerator.kt:265 */
  118    118   
                match key.to_unescaped()?.as_ref() {
  119    119   
                    /* JsonParserGenerator.kt:267 */
  120    120   
                    "union" => {
  121    121   
                        /* JsonParserGenerator.kt:277 */
  122    122   
                        builder = builder.set_union(
  123         -
                            /* JsonParserGenerator.kt:697 */
         123  +
                            /* JsonParserGenerator.kt:679 */
  124    124   
                            crate::protocol_serde::shape_simple_union::de_simple_union(
  125    125   
                                tokens, _value,
  126    126   
                            )?, /* JsonParserGenerator.kt:277 */
  127    127   
                        );
  128    128   
                        /* JsonParserGenerator.kt:267 */
  129    129   
                    }
  130    130   
                    /* JsonParserGenerator.kt:295 */
  131    131   
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
  132    132   
                }
  133         -
                /* JsonParserGenerator.kt:723 */
         133  +
                /* JsonParserGenerator.kt:705 */
  134    134   
            }
  135         -
            /* JsonParserGenerator.kt:732 */
         135  +
            /* JsonParserGenerator.kt:714 */
  136    136   
            other => {
  137    137   
                return Err(
  138    138   
                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  139    139   
                        "expected object key or end object, found: {other:?}"
  140    140   
                    )),
  141    141   
                )
  142         -
            } /* JsonParserGenerator.kt:722 */
         142  +
            } /* JsonParserGenerator.kt:704 */
  143    143   
        }
  144         -
        /* JsonParserGenerator.kt:721 */
         144  +
        /* JsonParserGenerator.kt:703 */
  145    145   
    }
  146    146   
    /* JsonParserGenerator.kt:255 */
  147    147   
    if tokens.next().is_some() {
  148    148   
        /* JsonParserGenerator.kt:256 */
  149    149   
        return Err(
  150    150   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  151    151   
                "found more JSON tokens after completing parsing",
  152    152   
            ),
  153    153   
        );
  154    154   
        /* JsonParserGenerator.kt:255 */

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_my_union.rs

@@ -1,1 +228,228 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
/* JsonParserGenerator.kt:588 */
           2  +
/* JsonParserGenerator.kt:570 */
    3      3   
pub(crate) fn de_my_union<'a, I>(
    4      4   
    tokens: &mut ::std::iter::Peekable<I>,
    5      5   
    _value: &'a [u8],
    6      6   
) -> ::std::result::Result<
    7      7   
    Option<crate::unconstrained::my_union_unconstrained::MyUnionUnconstrained>,
    8      8   
    ::aws_smithy_json::deserialize::error::DeserializeError,
    9      9   
>
   10     10   
where
   11     11   
    I: Iterator<
   12     12   
        Item = Result<
   13     13   
            ::aws_smithy_json::deserialize::Token<'a>,
   14     14   
            ::aws_smithy_json::deserialize::error::DeserializeError,
   15     15   
        >,
   16     16   
    >,
   17     17   
{
   18         -
    /* JsonParserGenerator.kt:602 */
          18  +
    /* JsonParserGenerator.kt:584 */
   19     19   
    let mut variant = None;
   20         -
    /* JsonParserGenerator.kt:604 */
          20  +
    /* JsonParserGenerator.kt:586 */
   21     21   
    match tokens.next().transpose()? {
   22         -
        /* JsonParserGenerator.kt:605 */
          22  +
        /* JsonParserGenerator.kt:587 */
   23     23   
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
   24     24   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
   25         -
            /* JsonParserGenerator.kt:721 */
          25  +
            /* JsonParserGenerator.kt:703 */
   26     26   
            loop {
   27         -
                /* JsonParserGenerator.kt:722 */
          27  +
                /* JsonParserGenerator.kt:704 */
   28     28   
                match tokens.next().transpose()? {
   29         -
                    /* JsonParserGenerator.kt:723 */
          29  +
                    /* JsonParserGenerator.kt:705 */
   30     30   
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   31     31   
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
   32         -
                        /* JsonParserGenerator.kt:613 */
          32  +
                        /* JsonParserGenerator.kt:595 */
   33     33   
                        if let ::std::option::Option::Some(::std::result::Result::Ok(
   34     34   
                            ::aws_smithy_json::deserialize::Token::ValueNull { .. },
   35     35   
                        )) = tokens.peek()
   36     36   
                        {
   37     37   
                            let _ = tokens.next().expect("peek returned a token")?;
   38     38   
                            continue;
   39     39   
                        }
   40         -
                        /* JsonParserGenerator.kt:622 */
          40  +
                        /* JsonParserGenerator.kt:604 */
   41     41   
                        let key = key.to_unescaped()?;
   42     42   
                        if key == "__type" {
   43     43   
                            ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
   44     44   
                            continue;
   45     45   
                        }
   46     46   
                        if variant.is_some() {
   47     47   
                            return Err(
   48     48   
                                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
   49     49   
                                    "encountered mixed variants in union",
   50     50   
                                ),
   51     51   
                            );
   52     52   
                        }
   53         -
                        /* JsonParserGenerator.kt:635 */
          53  +
                        /* JsonParserGenerator.kt:617 */
   54     54   
                        variant = match key.as_ref() {
   55         -
                            /* JsonParserGenerator.kt:638 */
          55  +
                            /* JsonParserGenerator.kt:620 */
   56     56   
                            "stringValue" => {
   57         -
                                /* JsonParserGenerator.kt:648 */
          57  +
                                /* JsonParserGenerator.kt:630 */
   58     58   
                                Some(crate::unconstrained::my_union_unconstrained::MyUnionUnconstrained::StringValue(
   59     59   
                                    /* JsonParserGenerator.kt:361 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
   60     60   
                                        /* JsonParserGenerator.kt:346 */s.to_unescaped().map(|u|
   61     61   
                                            /* JsonParserGenerator.kt:355 */u.into_owned()
   62     62   
                                        /* JsonParserGenerator.kt:346 */)
   63     63   
                                    /* JsonParserGenerator.kt:361 */).transpose()?
   64         -
                                    /* JsonParserGenerator.kt:707 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'stringValue' cannot be null"))?
   65         -
                                /* JsonParserGenerator.kt:648 */))
   66         -
                                /* JsonParserGenerator.kt:638 */
          64  +
                                    /* JsonParserGenerator.kt:689 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'stringValue' cannot be null"))?
          65  +
                                /* JsonParserGenerator.kt:630 */))
          66  +
                                /* JsonParserGenerator.kt:620 */
   67     67   
                            }
   68         -
                            /* JsonParserGenerator.kt:638 */
          68  +
                            /* JsonParserGenerator.kt:620 */
   69     69   
                            "booleanValue" => {
   70         -
                                /* JsonParserGenerator.kt:648 */
          70  +
                                /* JsonParserGenerator.kt:630 */
   71     71   
                                Some(crate::unconstrained::my_union_unconstrained::MyUnionUnconstrained::BooleanValue(
   72     72   
                                    /* JsonParserGenerator.kt:303 */::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?
   73         -
                                    /* JsonParserGenerator.kt:707 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'booleanValue' cannot be null"))?
   74         -
                                /* JsonParserGenerator.kt:648 */))
   75         -
                                /* JsonParserGenerator.kt:638 */
          73  +
                                    /* JsonParserGenerator.kt:689 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'booleanValue' cannot be null"))?
          74  +
                                /* JsonParserGenerator.kt:630 */))
          75  +
                                /* JsonParserGenerator.kt:620 */
   76     76   
                            }
   77         -
                            /* JsonParserGenerator.kt:638 */
          77  +
                            /* JsonParserGenerator.kt:620 */
   78     78   
                            "numberValue" => {
   79         -
                                /* JsonParserGenerator.kt:648 */
          79  +
                                /* JsonParserGenerator.kt:630 */
   80     80   
                                Some(crate::unconstrained::my_union_unconstrained::MyUnionUnconstrained::NumberValue(
   81     81   
                                    /* JsonParserGenerator.kt:372 */::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
   82     82   
                                                        .map(i32::try_from)
   83     83   
                                                        .transpose()?
   84         -
                                    /* JsonParserGenerator.kt:707 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'numberValue' cannot be null"))?
   85         -
                                /* JsonParserGenerator.kt:648 */))
   86         -
                                /* JsonParserGenerator.kt:638 */
          84  +
                                    /* JsonParserGenerator.kt:689 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'numberValue' cannot be null"))?
          85  +
                                /* JsonParserGenerator.kt:630 */))
          86  +
                                /* JsonParserGenerator.kt:620 */
   87     87   
                            }
   88         -
                            /* JsonParserGenerator.kt:638 */
          88  +
                            /* JsonParserGenerator.kt:620 */
   89     89   
                            "blobValue" => {
   90         -
                                /* JsonParserGenerator.kt:648 */
          90  +
                                /* JsonParserGenerator.kt:630 */
   91     91   
                                Some(crate::unconstrained::my_union_unconstrained::MyUnionUnconstrained::BlobValue(
   92     92   
                                    /* JsonParserGenerator.kt:333 */::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?
   93         -
                                    /* JsonParserGenerator.kt:707 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'blobValue' cannot be null"))?
   94         -
                                /* JsonParserGenerator.kt:648 */))
   95         -
                                /* JsonParserGenerator.kt:638 */
          93  +
                                    /* JsonParserGenerator.kt:689 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'blobValue' cannot be null"))?
          94  +
                                /* JsonParserGenerator.kt:630 */))
          95  +
                                /* JsonParserGenerator.kt:620 */
   96     96   
                            }
   97         -
                            /* JsonParserGenerator.kt:638 */
          97  +
                            /* JsonParserGenerator.kt:620 */
   98     98   
                            "timestampValue" => {
   99         -
                                /* JsonParserGenerator.kt:648 */
          99  +
                                /* JsonParserGenerator.kt:630 */
  100    100   
                                Some(crate::unconstrained::my_union_unconstrained::MyUnionUnconstrained::TimestampValue(
  101    101   
                                    /* JsonParserGenerator.kt:421 */::aws_smithy_json::deserialize::token::expect_timestamp_or_null(tokens.next(), ::aws_smithy_types::date_time::Format::EpochSeconds)?
  102         -
                                    /* JsonParserGenerator.kt:707 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'timestampValue' cannot be null"))?
  103         -
                                /* JsonParserGenerator.kt:648 */))
  104         -
                                /* JsonParserGenerator.kt:638 */
         102  +
                                    /* JsonParserGenerator.kt:689 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'timestampValue' cannot be null"))?
         103  +
                                /* JsonParserGenerator.kt:630 */))
         104  +
                                /* JsonParserGenerator.kt:620 */
  105    105   
                            }
  106         -
                            /* JsonParserGenerator.kt:638 */
         106  +
                            /* JsonParserGenerator.kt:620 */
  107    107   
                            "enumValue" => {
  108         -
                                /* JsonParserGenerator.kt:648 */
         108  +
                                /* JsonParserGenerator.kt:630 */
  109    109   
                                Some(crate::unconstrained::my_union_unconstrained::MyUnionUnconstrained::EnumValue(
  110    110   
                                    /* JsonParserGenerator.kt:361 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
  111    111   
                                        /* JsonParserGenerator.kt:346 */s.to_unescaped().map(|u|
  112    112   
                                            /* JsonParserGenerator.kt:350 */u.into_owned()
  113    113   
                                        /* JsonParserGenerator.kt:346 */)
  114    114   
                                    /* JsonParserGenerator.kt:361 */).transpose()?
  115         -
                                    /* JsonParserGenerator.kt:707 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'enumValue' cannot be null"))?
  116         -
                                /* JsonParserGenerator.kt:648 */))
  117         -
                                /* JsonParserGenerator.kt:638 */
         115  +
                                    /* JsonParserGenerator.kt:689 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'enumValue' cannot be null"))?
         116  +
                                /* JsonParserGenerator.kt:630 */))
         117  +
                                /* JsonParserGenerator.kt:620 */
  118    118   
                            }
  119         -
                            /* JsonParserGenerator.kt:638 */
         119  +
                            /* JsonParserGenerator.kt:620 */
  120    120   
                            "listValue" => {
  121         -
                                /* JsonParserGenerator.kt:648 */
         121  +
                                /* JsonParserGenerator.kt:630 */
  122    122   
                                Some(crate::unconstrained::my_union_unconstrained::MyUnionUnconstrained::ListValue(
  123         -
                                    /* JsonParserGenerator.kt:488 */crate::protocol_serde::shape_string_list::de_string_list(tokens, _value)?
  124         -
                                    /* JsonParserGenerator.kt:707 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'listValue' cannot be null"))?
  125         -
                                /* JsonParserGenerator.kt:648 */))
  126         -
                                /* JsonParserGenerator.kt:638 */
         123  +
                                    /* JsonParserGenerator.kt:481 */crate::protocol_serde::shape_string_list::de_string_list(tokens, _value)?
         124  +
                                    /* JsonParserGenerator.kt:689 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'listValue' cannot be null"))?
         125  +
                                /* JsonParserGenerator.kt:630 */))
         126  +
                                /* JsonParserGenerator.kt:620 */
  127    127   
                            }
  128         -
                            /* JsonParserGenerator.kt:638 */
         128  +
                            /* JsonParserGenerator.kt:620 */
  129    129   
                            "mapValue" => {
  130         -
                                /* JsonParserGenerator.kt:648 */
         130  +
                                /* JsonParserGenerator.kt:630 */
  131    131   
                                Some(crate::unconstrained::my_union_unconstrained::MyUnionUnconstrained::MapValue(
  132         -
                                    /* JsonParserGenerator.kt:546 */crate::protocol_serde::shape_string_map::de_string_map(tokens, _value)?
  133         -
                                    /* JsonParserGenerator.kt:707 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'mapValue' cannot be null"))?
  134         -
                                /* JsonParserGenerator.kt:648 */))
  135         -
                                /* JsonParserGenerator.kt:638 */
         132  +
                                    /* JsonParserGenerator.kt:528 */crate::protocol_serde::shape_string_map::de_string_map(tokens, _value)?
         133  +
                                    /* JsonParserGenerator.kt:689 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'mapValue' cannot be null"))?
         134  +
                                /* JsonParserGenerator.kt:630 */))
         135  +
                                /* JsonParserGenerator.kt:620 */
  136    136   
                            }
  137         -
                            /* JsonParserGenerator.kt:638 */
         137  +
                            /* JsonParserGenerator.kt:620 */
  138    138   
                            "structureValue" => {
  139         -
                                /* JsonParserGenerator.kt:648 */
         139  +
                                /* JsonParserGenerator.kt:630 */
  140    140   
                                Some(crate::unconstrained::my_union_unconstrained::MyUnionUnconstrained::StructureValue(
  141         -
                                    /* JsonParserGenerator.kt:581 */crate::protocol_serde::shape_greeting_struct::de_greeting_struct(tokens, _value)?
  142         -
                                    /* JsonParserGenerator.kt:707 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'structureValue' cannot be null"))?
  143         -
                                /* JsonParserGenerator.kt:648 */))
  144         -
                                /* JsonParserGenerator.kt:638 */
         141  +
                                    /* JsonParserGenerator.kt:563 */crate::protocol_serde::shape_greeting_struct::de_greeting_struct(tokens, _value)?
         142  +
                                    /* JsonParserGenerator.kt:689 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'structureValue' cannot be null"))?
         143  +
                                /* JsonParserGenerator.kt:630 */))
         144  +
                                /* JsonParserGenerator.kt:620 */
  145    145   
                            }
  146         -
                            /* JsonParserGenerator.kt:638 */
         146  +
                            /* JsonParserGenerator.kt:620 */
  147    147   
                            "renamedStructureValue" => {
  148         -
                                /* JsonParserGenerator.kt:648 */
         148  +
                                /* JsonParserGenerator.kt:630 */
  149    149   
                                Some(crate::unconstrained::my_union_unconstrained::MyUnionUnconstrained::RenamedStructureValue(
  150         -
                                    /* JsonParserGenerator.kt:581 */crate::protocol_serde::shape_renamed_greeting::de_renamed_greeting(tokens, _value)?
  151         -
                                    /* JsonParserGenerator.kt:707 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'renamedStructureValue' cannot be null"))?
  152         -
                                /* JsonParserGenerator.kt:648 */))
  153         -
                                /* JsonParserGenerator.kt:638 */
         150  +
                                    /* JsonParserGenerator.kt:563 */crate::protocol_serde::shape_renamed_greeting::de_renamed_greeting(tokens, _value)?
         151  +
                                    /* JsonParserGenerator.kt:689 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'renamedStructureValue' cannot be null"))?
         152  +
                                /* JsonParserGenerator.kt:630 */))
         153  +
                                /* JsonParserGenerator.kt:620 */
  154    154   
                            }
  155         -
                            /* JsonParserGenerator.kt:671 */
         155  +
                            /* JsonParserGenerator.kt:653 */
  156    156   
                            variant => {
  157    157   
                                return Err(
  158    158   
                                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  159    159   
                                        format!("unexpected union variant: {variant}"),
  160    160   
                                    ),
  161    161   
                                )
  162         -
                            } /* JsonParserGenerator.kt:635 */
         162  +
                            } /* JsonParserGenerator.kt:617 */
  163    163   
                        };
  164         -
                        /* JsonParserGenerator.kt:723 */
         164  +
                        /* JsonParserGenerator.kt:705 */
  165    165   
                    }
  166         -
                    /* JsonParserGenerator.kt:732 */
         166  +
                    /* JsonParserGenerator.kt:714 */
  167    167   
                    other => {
  168    168   
                        return Err(
  169    169   
                            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  170    170   
                                format!("expected object key or end object, found: {other:?}"),
  171    171   
                            ),
  172    172   
                        )
  173         -
                    } /* JsonParserGenerator.kt:722 */
         173  +
                    } /* JsonParserGenerator.kt:704 */
  174    174   
                }
  175         -
                /* JsonParserGenerator.kt:721 */
         175  +
                /* JsonParserGenerator.kt:703 */
  176    176   
            }
  177         -
            /* JsonParserGenerator.kt:605 */
         177  +
            /* JsonParserGenerator.kt:587 */
  178    178   
        }
  179         -
        /* JsonParserGenerator.kt:679 */
         179  +
        /* JsonParserGenerator.kt:661 */
  180    180   
        _ => {
  181    181   
            return Err(
  182    182   
                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  183    183   
                    "expected start object or null",
  184    184   
                ),
  185    185   
            )
  186         -
        } /* JsonParserGenerator.kt:604 */
         186  +
        } /* JsonParserGenerator.kt:586 */
  187    187   
    }
  188         -
    /* JsonParserGenerator.kt:686 */
         188  +
    /* JsonParserGenerator.kt:668 */
  189    189   
    if variant.is_none() {
  190    190   
        return Err(
  191    191   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  192    192   
                "Union did not contain a valid variant.",
  193    193   
            ),
  194    194   
        );
  195    195   
    }
  196         -
    /* JsonParserGenerator.kt:694 */
         196  +
    /* JsonParserGenerator.kt:676 */
  197    197   
    Ok(variant)
  198         -
    /* JsonParserGenerator.kt:588 */
         198  +
    /* JsonParserGenerator.kt:570 */
  199    199   
}
  200    200   
  201    201   
/* JsonSerializerGenerator.kt:559 */
  202    202   
pub fn ser_my_union(
  203    203   
    object_2: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
  204    204   
    input: &crate::model::MyUnion,
  205    205   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
  206    206   
    /* JsonSerializerGenerator.kt:568 */
  207    207   
    match input {
  208    208   
        /* JsonSerializerGenerator.kt:576 */

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_nested_payload.rs

@@ -1,1 +146,146 @@
    7      7   
    ::aws_smithy_json::deserialize::error::DeserializeError,
    8      8   
> {
    9      9   
    /* JsonParserGenerator.kt:192 */
   10     10   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
   11     11   
        crate::protocol_serde::or_empty_doc(_value),
   12     12   
    )
   13     13   
    .peekable();
   14     14   
    let tokens = &mut tokens_owned;
   15     15   
    /* JsonParserGenerator.kt:199 */
   16     16   
    let result =
   17         -
    /* JsonParserGenerator.kt:581 */crate::protocol_serde::shape_nested_payload::de_nested_payload(tokens, _value)?
          17  +
    /* JsonParserGenerator.kt:563 */crate::protocol_serde::shape_nested_payload::de_nested_payload(tokens, _value)?
   18     18   
    /* JsonParserGenerator.kt:201 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("expected payload member value"));
   19     19   
    /* JsonParserGenerator.kt:255 */
   20     20   
    if tokens.next().is_some() {
   21     21   
        /* JsonParserGenerator.kt:256 */
   22     22   
        return Err(
   23     23   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
   24     24   
                "found more JSON tokens after completing parsing",
   25     25   
            ),
   26     26   
        );
   27     27   
        /* JsonParserGenerator.kt:255 */
   28     28   
    }
   29     29   
    /* JsonParserGenerator.kt:203 */
   30     30   
    result
   31     31   
    /* JsonParserGenerator.kt:180 */
   32     32   
}
   33     33   
   34     34   
/* JsonSerializerGenerator.kt:360 */
   35     35   
pub fn ser_nested_payload(
   36     36   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
   37     37   
    input: &crate::model::NestedPayload,
   38     38   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
   39     39   
    /* JsonSerializerGenerator.kt:384 */
   40     40   
    if let Some(var_1) = &input.greeting {
   41     41   
        /* JsonSerializerGenerator.kt:425 */
   42     42   
        object.key("greeting").string(var_1.as_str());
   43     43   
        /* JsonSerializerGenerator.kt:384 */
   44     44   
    }
   45     45   
    /* JsonSerializerGenerator.kt:384 */
   46     46   
    if let Some(var_2) = &input.name {
   47     47   
        /* JsonSerializerGenerator.kt:425 */
   48     48   
        object.key("name").string(var_2.as_str());
   49     49   
        /* JsonSerializerGenerator.kt:384 */
   50     50   
    }
   51     51   
    /* JsonSerializerGenerator.kt:374 */
   52     52   
    Ok(())
   53     53   
    /* JsonSerializerGenerator.kt:360 */
   54     54   
}
   55     55   
   56         -
/* JsonParserGenerator.kt:553 */
          56  +
/* JsonParserGenerator.kt:535 */
   57     57   
pub(crate) fn de_nested_payload<'a, I>(
   58     58   
    tokens: &mut ::std::iter::Peekable<I>,
   59     59   
    _value: &'a [u8],
   60     60   
) -> ::std::result::Result<
   61     61   
    Option<crate::model::NestedPayload>,
   62     62   
    ::aws_smithy_json::deserialize::error::DeserializeError,
   63     63   
>
   64     64   
where
   65     65   
    I: Iterator<
   66     66   
        Item = Result<
   67     67   
            ::aws_smithy_json::deserialize::Token<'a>,
   68     68   
            ::aws_smithy_json::deserialize::error::DeserializeError,
   69     69   
        >,
   70     70   
    >,
   71     71   
{
   72         -
    /* JsonParserGenerator.kt:749 */
          72  +
    /* JsonParserGenerator.kt:731 */
   73     73   
    match tokens.next().transpose()? {
   74         -
        /* JsonParserGenerator.kt:750 */
          74  +
        /* JsonParserGenerator.kt:732 */
   75     75   
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   76     76   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
   77     77   
            /* RustType.kt:534 */
   78     78   
            #[allow(unused_mut)]
   79         -
            /* JsonParserGenerator.kt:563 */
          79  +
            /* JsonParserGenerator.kt:545 */
   80     80   
            let mut builder = crate::model::nested_payload::Builder::default();
   81         -
            /* JsonParserGenerator.kt:721 */
          81  +
            /* JsonParserGenerator.kt:703 */
   82     82   
            loop {
   83         -
                /* JsonParserGenerator.kt:722 */
          83  +
                /* JsonParserGenerator.kt:704 */
   84     84   
                match tokens.next().transpose()? {
   85         -
                    /* JsonParserGenerator.kt:723 */
          85  +
                    /* JsonParserGenerator.kt:705 */
   86     86   
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   87     87   
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
   88     88   
                        /* JsonParserGenerator.kt:265 */
   89     89   
                        match key.to_unescaped()?.as_ref() {
   90     90   
                            /* JsonParserGenerator.kt:267 */
   91     91   
                            "greeting" => {
   92     92   
                                /* JsonParserGenerator.kt:277 */
   93     93   
                                builder = builder.set_greeting(
   94     94   
                                    /* JsonParserGenerator.kt:361 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
   95     95   
                                        /* JsonParserGenerator.kt:346 */s.to_unescaped().map(|u|
   96     96   
                                            /* JsonParserGenerator.kt:355 */u.into_owned()
   97     97   
                                        /* JsonParserGenerator.kt:346 */)
   98     98   
                                    /* JsonParserGenerator.kt:361 */).transpose()?
   99     99   
                                /* JsonParserGenerator.kt:277 */);
  100    100   
                                /* JsonParserGenerator.kt:267 */
  101    101   
                            }
  102    102   
                            /* JsonParserGenerator.kt:267 */
  103    103   
                            "name" => {
  104    104   
                                /* JsonParserGenerator.kt:277 */
  105    105   
                                builder = builder.set_name(
  106    106   
                                    /* JsonParserGenerator.kt:361 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
  107    107   
                                        /* JsonParserGenerator.kt:346 */s.to_unescaped().map(|u|
  108    108   
                                            /* JsonParserGenerator.kt:355 */u.into_owned()
  109    109   
                                        /* JsonParserGenerator.kt:346 */)
  110    110   
                                    /* JsonParserGenerator.kt:361 */).transpose()?
  111    111   
                                /* JsonParserGenerator.kt:277 */);
  112    112   
                                /* JsonParserGenerator.kt:267 */
  113    113   
                            }
  114    114   
                            /* JsonParserGenerator.kt:295 */
  115    115   
                            _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
  116    116   
                        }
  117         -
                        /* JsonParserGenerator.kt:723 */
         117  +
                        /* JsonParserGenerator.kt:705 */
  118    118   
                    }
  119         -
                    /* JsonParserGenerator.kt:732 */
         119  +
                    /* JsonParserGenerator.kt:714 */
  120    120   
                    other => {
  121    121   
                        return Err(
  122    122   
                            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  123    123   
                                format!("expected object key or end object, found: {other:?}"),
  124    124   
                            ),
  125    125   
                        )
  126         -
                    } /* JsonParserGenerator.kt:722 */
         126  +
                    } /* JsonParserGenerator.kt:704 */
  127    127   
                }
  128         -
                /* JsonParserGenerator.kt:721 */
         128  +
                /* JsonParserGenerator.kt:703 */
  129    129   
            }
  130         -
            /* JsonParserGenerator.kt:577 */
         130  +
            /* JsonParserGenerator.kt:559 */
  131    131   
            Ok(Some(builder.build()))
  132         -
            /* JsonParserGenerator.kt:750 */
         132  +
            /* JsonParserGenerator.kt:732 */
  133    133   
        }
  134         -
        /* JsonParserGenerator.kt:759 */
         134  +
        /* JsonParserGenerator.kt:741 */
  135    135   
        _ => {
  136         -
            /* JsonParserGenerator.kt:760 */
         136  +
            /* JsonParserGenerator.kt:742 */
  137    137   
            Err(
  138    138   
                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  139    139   
                    "expected start object or null",
  140    140   
                ),
  141    141   
            )
  142         -
            /* JsonParserGenerator.kt:759 */
  143         -
        } /* JsonParserGenerator.kt:749 */
         142  +
            /* JsonParserGenerator.kt:741 */
         143  +
        } /* JsonParserGenerator.kt:731 */
  144    144   
    }
  145         -
    /* JsonParserGenerator.kt:553 */
         145  +
    /* JsonParserGenerator.kt:535 */
  146    146   
}

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_nested_string_list.rs

@@ -1,1 +75,73 @@
    8      8   
    ::aws_smithy_json::deserialize::error::DeserializeError,
    9      9   
>
   10     10   
where
   11     11   
    I: Iterator<
   12     12   
        Item = Result<
   13     13   
            ::aws_smithy_json::deserialize::Token<'a>,
   14     14   
            ::aws_smithy_json::deserialize::error::DeserializeError,
   15     15   
        >,
   16     16   
    >,
   17     17   
{
   18         -
    /* JsonParserGenerator.kt:749 */
          18  +
    /* JsonParserGenerator.kt:731 */
   19     19   
    match tokens.next().transpose()? {
   20         -
        /* JsonParserGenerator.kt:750 */
          20  +
        /* JsonParserGenerator.kt:732 */
   21     21   
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   22     22   
        Some(::aws_smithy_json::deserialize::Token::StartArray { .. }) => {
   23     23   
            /* JsonParserGenerator.kt:444 */
   24     24   
            let mut items = Vec::new();
   25     25   
            /* JsonParserGenerator.kt:445 */
   26     26   
            loop {
   27     27   
                /* JsonParserGenerator.kt:446 */
   28     28   
                match tokens.peek() {
   29     29   
                    /* JsonParserGenerator.kt:447 */
   30     30   
                    Some(Ok(::aws_smithy_json::deserialize::Token::EndArray { .. })) => {
   31     31   
                        /* JsonParserGenerator.kt:448 */
   32     32   
                        tokens.next().transpose().unwrap();
   33     33   
                        break;
   34     34   
                        /* JsonParserGenerator.kt:447 */
   35     35   
                    }
   36     36   
                    /* JsonParserGenerator.kt:450 */
   37     37   
                    _ => {
   38     38   
                        /* JsonParserGenerator.kt:456 */
   39     39   
                        let value =
   40         -
                            /* JsonParserGenerator.kt:488 */crate::protocol_serde::shape_string_list::de_string_list(tokens, _value)?
          40  +
                            /* JsonParserGenerator.kt:481 */crate::protocol_serde::shape_string_list::de_string_list(tokens, _value)?
   41     41   
                        /* JsonParserGenerator.kt:456 */;
   42     42   
                        /* JsonParserGenerator.kt:459 */
   43     43   
                        if let Some(value) = value {
   44     44   
                            items.push(value);
   45         -
                        }
   46         -
                        /* JsonParserGenerator.kt:467 */
   47         -
                        else {
          45  +
                        } else {
   48     46   
                            return Err(
   49     47   
                                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
   50     48   
                                    "dense list cannot contain null values",
   51     49   
                                ),
   52     50   
                            );
   53     51   
                        }
   54     52   
                        /* JsonParserGenerator.kt:450 */
   55     53   
                    } /* JsonParserGenerator.kt:446 */
   56     54   
                }
   57     55   
                /* JsonParserGenerator.kt:445 */
   58     56   
            }
   59         -
            /* JsonParserGenerator.kt:483 */
          57  +
            /* JsonParserGenerator.kt:476 */
   60     58   
            Ok(Some(items))
   61         -
            /* JsonParserGenerator.kt:750 */
          59  +
            /* JsonParserGenerator.kt:732 */
   62     60   
        }
   63         -
        /* JsonParserGenerator.kt:759 */
          61  +
        /* JsonParserGenerator.kt:741 */
   64     62   
        _ => {
   65         -
            /* JsonParserGenerator.kt:760 */
          63  +
            /* JsonParserGenerator.kt:742 */
   66     64   
            Err(
   67     65   
                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
   68     66   
                    "expected start array or null",
   69     67   
                ),
   70     68   
            )
   71         -
            /* JsonParserGenerator.kt:759 */
   72         -
        } /* JsonParserGenerator.kt:749 */
          69  +
            /* JsonParserGenerator.kt:741 */
          70  +
        } /* JsonParserGenerator.kt:731 */
   73     71   
    }
   74     72   
    /* JsonParserGenerator.kt:435 */
   75     73   
}

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_operation_with_defaults.rs

@@ -133,133 +252,252 @@
  153    153   
    crate::input::operation_with_defaults_input::Builder,
  154    154   
    ::aws_smithy_json::deserialize::error::DeserializeError,
  155    155   
> {
  156    156   
    /* JsonParserGenerator.kt:158 */
  157    157   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
  158    158   
        crate::protocol_serde::or_empty_doc(_value),
  159    159   
    )
  160    160   
    .peekable();
  161    161   
    let tokens = &mut tokens_owned;
  162    162   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
  163         -
    /* JsonParserGenerator.kt:721 */
         163  +
    /* JsonParserGenerator.kt:703 */
  164    164   
    loop {
  165         -
        /* JsonParserGenerator.kt:722 */
         165  +
        /* JsonParserGenerator.kt:704 */
  166    166   
        match tokens.next().transpose()? {
  167         -
            /* JsonParserGenerator.kt:723 */
         167  +
            /* JsonParserGenerator.kt:705 */
  168    168   
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
  169    169   
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
  170    170   
                /* JsonParserGenerator.kt:265 */
  171    171   
                match key.to_unescaped()?.as_ref() {
  172    172   
                    /* JsonParserGenerator.kt:267 */
  173    173   
                    "clientOptionalDefaults" => {
  174    174   
                        /* JsonParserGenerator.kt:277 */
  175    175   
                        builder = builder.set_client_optional_defaults(
  176         -
                            /* JsonParserGenerator.kt:581 */crate::protocol_serde::shape_client_optional_defaults::de_client_optional_defaults(tokens, _value)?
         176  +
                            /* JsonParserGenerator.kt:563 */crate::protocol_serde::shape_client_optional_defaults::de_client_optional_defaults(tokens, _value)?
  177    177   
                        /* JsonParserGenerator.kt:277 */);
  178    178   
                        /* JsonParserGenerator.kt:267 */
  179    179   
                    }
  180    180   
                    /* JsonParserGenerator.kt:267 */
  181    181   
                    "defaults" => {
  182    182   
                        /* JsonParserGenerator.kt:277 */
  183    183   
                        builder = builder.set_defaults(
  184         -
                            /* JsonParserGenerator.kt:581 */crate::protocol_serde::shape_defaults::de_defaults(tokens, _value)?
         184  +
                            /* JsonParserGenerator.kt:563 */crate::protocol_serde::shape_defaults::de_defaults(tokens, _value)?
  185    185   
                        /* JsonParserGenerator.kt:277 */);
  186    186   
                        /* JsonParserGenerator.kt:267 */
  187    187   
                    }
  188    188   
                    /* JsonParserGenerator.kt:267 */
  189    189   
                    "otherTopLevelDefault" => {
  190    190   
                        /* JsonParserGenerator.kt:281 */
  191    191   
                        if let Some(v) =
  192    192   
                            /* JsonParserGenerator.kt:372 */
  193    193   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(
  194    194   
                                    tokens.next(),
  195    195   
                                )?
  196    196   
                                .map(i32::try_from)
  197    197   
                                .transpose()?
  198    198   
                        /* JsonParserGenerator.kt:283 */
  199    199   
                        {
  200    200   
                            builder = builder.set_other_top_level_default(v);
  201    201   
                        }
  202    202   
                        /* JsonParserGenerator.kt:267 */
  203    203   
                    }
  204    204   
                    /* JsonParserGenerator.kt:267 */
  205    205   
                    "topLevelDefault" => {
  206    206   
                        /* JsonParserGenerator.kt:281 */
  207    207   
                        if let Some(v) =
  208    208   
                            /* JsonParserGenerator.kt:361 */
  209    209   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(
  210    210   
                                    tokens.next(),
  211    211   
                                )?
  212    212   
                                .map(|s|
  213    213   
                            /* JsonParserGenerator.kt:346 */s.to_unescaped().map(|u|
  214    214   
                                /* JsonParserGenerator.kt:355 */u.into_owned()
  215    215   
                            /* JsonParserGenerator.kt:346 */) /* JsonParserGenerator.kt:361 */)
  216    216   
                                .transpose()?
  217    217   
                        /* JsonParserGenerator.kt:283 */
  218    218   
                        {
  219    219   
                            builder = builder.set_top_level_default(v);
  220    220   
                        }
  221    221   
                        /* JsonParserGenerator.kt:267 */
  222    222   
                    }
  223    223   
                    /* JsonParserGenerator.kt:295 */
  224    224   
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
  225    225   
                }
  226         -
                /* JsonParserGenerator.kt:723 */
         226  +
                /* JsonParserGenerator.kt:705 */
  227    227   
            }
  228         -
            /* JsonParserGenerator.kt:732 */
         228  +
            /* JsonParserGenerator.kt:714 */
  229    229   
            other => {
  230    230   
                return Err(
  231    231   
                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  232    232   
                        "expected object key or end object, found: {other:?}"
  233    233   
                    )),
  234    234   
                )
  235         -
            } /* JsonParserGenerator.kt:722 */
         235  +
            } /* JsonParserGenerator.kt:704 */
  236    236   
        }
  237         -
        /* JsonParserGenerator.kt:721 */
         237  +
        /* JsonParserGenerator.kt:703 */
  238    238   
    }
  239    239   
    /* JsonParserGenerator.kt:255 */
  240    240   
    if tokens.next().is_some() {
  241    241   
        /* JsonParserGenerator.kt:256 */
  242    242   
        return Err(
  243    243   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  244    244   
                "found more JSON tokens after completing parsing",
  245    245   
            ),
  246    246   
        );
  247    247   
        /* JsonParserGenerator.kt:255 */

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_operation_with_nested_structure.rs

@@ -129,129 +211,211 @@
  149    149   
    crate::input::operation_with_nested_structure_input::Builder,
  150    150   
    ::aws_smithy_json::deserialize::error::DeserializeError,
  151    151   
> {
  152    152   
    /* JsonParserGenerator.kt:158 */
  153    153   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
  154    154   
        crate::protocol_serde::or_empty_doc(_value),
  155    155   
    )
  156    156   
    .peekable();
  157    157   
    let tokens = &mut tokens_owned;
  158    158   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
  159         -
    /* JsonParserGenerator.kt:721 */
         159  +
    /* JsonParserGenerator.kt:703 */
  160    160   
    loop {
  161         -
        /* JsonParserGenerator.kt:722 */
         161  +
        /* JsonParserGenerator.kt:704 */
  162    162   
        match tokens.next().transpose()? {
  163         -
            /* JsonParserGenerator.kt:723 */
         163  +
            /* JsonParserGenerator.kt:705 */
  164    164   
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
  165    165   
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
  166    166   
                /* JsonParserGenerator.kt:265 */
  167    167   
                match key.to_unescaped()?.as_ref() {
  168    168   
                    /* JsonParserGenerator.kt:267 */
  169    169   
                    "topLevel" => {
  170    170   
                        /* JsonParserGenerator.kt:281 */
  171    171   
                        if let Some(v) =
  172         -
                            /* JsonParserGenerator.kt:581 */
         172  +
                            /* JsonParserGenerator.kt:563 */
  173    173   
                            crate::protocol_serde::shape_top_level::de_top_level(
  174    174   
                                tokens, _value,
  175    175   
                            )?
  176    176   
                        /* JsonParserGenerator.kt:283 */
  177    177   
                        {
  178    178   
                            builder = builder.set_top_level(v);
  179    179   
                        }
  180    180   
                        /* JsonParserGenerator.kt:267 */
  181    181   
                    }
  182    182   
                    /* JsonParserGenerator.kt:295 */
  183    183   
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
  184    184   
                }
  185         -
                /* JsonParserGenerator.kt:723 */
         185  +
                /* JsonParserGenerator.kt:705 */
  186    186   
            }
  187         -
            /* JsonParserGenerator.kt:732 */
         187  +
            /* JsonParserGenerator.kt:714 */
  188    188   
            other => {
  189    189   
                return Err(
  190    190   
                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  191    191   
                        "expected object key or end object, found: {other:?}"
  192    192   
                    )),
  193    193   
                )
  194         -
            } /* JsonParserGenerator.kt:722 */
         194  +
            } /* JsonParserGenerator.kt:704 */
  195    195   
        }
  196         -
        /* JsonParserGenerator.kt:721 */
         196  +
        /* JsonParserGenerator.kt:703 */
  197    197   
    }
  198    198   
    /* JsonParserGenerator.kt:255 */
  199    199   
    if tokens.next().is_some() {
  200    200   
        /* JsonParserGenerator.kt:256 */
  201    201   
        return Err(
  202    202   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  203    203   
                "found more JSON tokens after completing parsing",
  204    204   
            ),
  205    205   
        );
  206    206   
        /* JsonParserGenerator.kt:255 */

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_payload_config.rs

@@ -1,1 +132,132 @@
    7      7   
    ::aws_smithy_json::deserialize::error::DeserializeError,
    8      8   
> {
    9      9   
    /* JsonParserGenerator.kt:192 */
   10     10   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
   11     11   
        crate::protocol_serde::or_empty_doc(_value),
   12     12   
    )
   13     13   
    .peekable();
   14     14   
    let tokens = &mut tokens_owned;
   15     15   
    /* JsonParserGenerator.kt:199 */
   16     16   
    let result =
   17         -
    /* JsonParserGenerator.kt:581 */crate::protocol_serde::shape_payload_config::de_payload_config(tokens, _value)?
          17  +
    /* JsonParserGenerator.kt:563 */crate::protocol_serde::shape_payload_config::de_payload_config(tokens, _value)?
   18     18   
    /* JsonParserGenerator.kt:201 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("expected payload member value"));
   19     19   
    /* JsonParserGenerator.kt:255 */
   20     20   
    if tokens.next().is_some() {
   21     21   
        /* JsonParserGenerator.kt:256 */
   22     22   
        return Err(
   23     23   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
   24     24   
                "found more JSON tokens after completing parsing",
   25     25   
            ),
   26     26   
        );
   27     27   
        /* JsonParserGenerator.kt:255 */
   28     28   
    }
   29     29   
    /* JsonParserGenerator.kt:203 */
   30     30   
    result
   31     31   
    /* JsonParserGenerator.kt:180 */
   32     32   
}
   33     33   
   34         -
/* JsonParserGenerator.kt:553 */
          34  +
/* JsonParserGenerator.kt:535 */
   35     35   
pub(crate) fn de_payload_config<'a, I>(
   36     36   
    tokens: &mut ::std::iter::Peekable<I>,
   37     37   
    _value: &'a [u8],
   38     38   
) -> ::std::result::Result<
   39     39   
    Option<crate::model::PayloadConfig>,
   40     40   
    ::aws_smithy_json::deserialize::error::DeserializeError,
   41     41   
>
   42     42   
where
   43     43   
    I: Iterator<
   44     44   
        Item = Result<
   45     45   
            ::aws_smithy_json::deserialize::Token<'a>,
   46     46   
            ::aws_smithy_json::deserialize::error::DeserializeError,
   47     47   
        >,
   48     48   
    >,
   49     49   
{
   50         -
    /* JsonParserGenerator.kt:749 */
          50  +
    /* JsonParserGenerator.kt:731 */
   51     51   
    match tokens.next().transpose()? {
   52         -
        /* JsonParserGenerator.kt:750 */
          52  +
        /* JsonParserGenerator.kt:732 */
   53     53   
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   54     54   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
   55     55   
            /* RustType.kt:534 */
   56     56   
            #[allow(unused_mut)]
   57         -
            /* JsonParserGenerator.kt:563 */
          57  +
            /* JsonParserGenerator.kt:545 */
   58     58   
            let mut builder = crate::model::payload_config::Builder::default();
   59         -
            /* JsonParserGenerator.kt:721 */
          59  +
            /* JsonParserGenerator.kt:703 */
   60     60   
            loop {
   61         -
                /* JsonParserGenerator.kt:722 */
          61  +
                /* JsonParserGenerator.kt:704 */
   62     62   
                match tokens.next().transpose()? {
   63         -
                    /* JsonParserGenerator.kt:723 */
          63  +
                    /* JsonParserGenerator.kt:705 */
   64     64   
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   65     65   
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
   66     66   
                        /* JsonParserGenerator.kt:265 */
   67     67   
                        match key.to_unescaped()?.as_ref() {
   68     68   
                            /* JsonParserGenerator.kt:267 */
   69     69   
                            "data" => {
   70     70   
                                /* JsonParserGenerator.kt:277 */
   71     71   
                                builder = builder.set_data(
   72     72   
                                    /* JsonParserGenerator.kt:372 */
   73     73   
                                    ::aws_smithy_json::deserialize::token::expect_number_or_null(
   74     74   
                                        tokens.next(),
   75     75   
                                    )?
   76     76   
                                    .map(i32::try_from)
   77     77   
                                    .transpose()?, /* JsonParserGenerator.kt:277 */
   78     78   
                                );
   79     79   
                                /* JsonParserGenerator.kt:267 */
   80     80   
                            }
   81     81   
                            /* JsonParserGenerator.kt:295 */
   82     82   
                            _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
   83     83   
                        }
   84         -
                        /* JsonParserGenerator.kt:723 */
          84  +
                        /* JsonParserGenerator.kt:705 */
   85     85   
                    }
   86         -
                    /* JsonParserGenerator.kt:732 */
          86  +
                    /* JsonParserGenerator.kt:714 */
   87     87   
                    other => {
   88     88   
                        return Err(
   89     89   
                            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
   90     90   
                                format!("expected object key or end object, found: {other:?}"),
   91     91   
                            ),
   92     92   
                        )
   93         -
                    } /* JsonParserGenerator.kt:722 */
          93  +
                    } /* JsonParserGenerator.kt:704 */
   94     94   
                }
   95         -
                /* JsonParserGenerator.kt:721 */
          95  +
                /* JsonParserGenerator.kt:703 */
   96     96   
            }
   97         -
            /* JsonParserGenerator.kt:577 */
          97  +
            /* JsonParserGenerator.kt:559 */
   98     98   
            Ok(Some(builder.build()))
   99         -
            /* JsonParserGenerator.kt:750 */
          99  +
            /* JsonParserGenerator.kt:732 */
  100    100   
        }
  101         -
        /* JsonParserGenerator.kt:759 */
         101  +
        /* JsonParserGenerator.kt:741 */
  102    102   
        _ => {
  103         -
            /* JsonParserGenerator.kt:760 */
         103  +
            /* JsonParserGenerator.kt:742 */
  104    104   
            Err(
  105    105   
                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  106    106   
                    "expected start object or null",
  107    107   
                ),
  108    108   
            )
  109         -
            /* JsonParserGenerator.kt:759 */
  110         -
        } /* JsonParserGenerator.kt:749 */
         109  +
            /* JsonParserGenerator.kt:741 */
         110  +
        } /* JsonParserGenerator.kt:731 */
  111    111   
    }
  112         -
    /* JsonParserGenerator.kt:553 */
         112  +
    /* JsonParserGenerator.kt:535 */
  113    113   
}
  114    114   
  115    115   
/* JsonSerializerGenerator.kt:360 */
  116    116   
pub fn ser_payload_config(
  117    117   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
  118    118   
    input: &crate::model::PayloadConfig,
  119    119   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
  120    120   
    /* JsonSerializerGenerator.kt:384 */
  121    121   
    if let Some(var_1) = &input.data {
  122    122   
        /* JsonSerializerGenerator.kt:444 */

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_payload_structure.rs

@@ -1,1 +128,128 @@
    7      7   
    ::aws_smithy_json::deserialize::error::DeserializeError,
    8      8   
> {
    9      9   
    /* JsonParserGenerator.kt:192 */
   10     10   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
   11     11   
        crate::protocol_serde::or_empty_doc(_value),
   12     12   
    )
   13     13   
    .peekable();
   14     14   
    let tokens = &mut tokens_owned;
   15     15   
    /* JsonParserGenerator.kt:199 */
   16     16   
    let result =
   17         -
    /* JsonParserGenerator.kt:581 */crate::protocol_serde::shape_payload_structure::de_payload_structure(tokens, _value)?
          17  +
    /* JsonParserGenerator.kt:563 */crate::protocol_serde::shape_payload_structure::de_payload_structure(tokens, _value)?
   18     18   
    /* JsonParserGenerator.kt:201 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("expected payload member value"));
   19     19   
    /* JsonParserGenerator.kt:255 */
   20     20   
    if tokens.next().is_some() {
   21     21   
        /* JsonParserGenerator.kt:256 */
   22     22   
        return Err(
   23     23   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
   24     24   
                "found more JSON tokens after completing parsing",
   25     25   
            ),
   26     26   
        );
   27     27   
        /* JsonParserGenerator.kt:255 */
   28     28   
    }
   29     29   
    /* JsonParserGenerator.kt:203 */
   30     30   
    result
   31     31   
    /* JsonParserGenerator.kt:180 */
   32     32   
}
   33     33   
   34     34   
/* JsonSerializerGenerator.kt:360 */
   35     35   
pub fn ser_payload_structure(
   36     36   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
   37     37   
    input: &crate::model::PayloadStructure,
   38     38   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
   39     39   
    /* JsonSerializerGenerator.kt:384 */
   40     40   
    if let Some(var_1) = &input.structure_member {
   41     41   
        /* JsonSerializerGenerator.kt:425 */
   42     42   
        object.key("structureMember").string(var_1.as_str());
   43     43   
        /* JsonSerializerGenerator.kt:384 */
   44     44   
    }
   45     45   
    /* JsonSerializerGenerator.kt:374 */
   46     46   
    Ok(())
   47     47   
    /* JsonSerializerGenerator.kt:360 */
   48     48   
}
   49     49   
   50         -
/* JsonParserGenerator.kt:553 */
          50  +
/* JsonParserGenerator.kt:535 */
   51     51   
pub(crate) fn de_payload_structure<'a, I>(
   52     52   
    tokens: &mut ::std::iter::Peekable<I>,
   53     53   
    _value: &'a [u8],
   54     54   
) -> ::std::result::Result<
   55     55   
    Option<crate::model::PayloadStructure>,
   56     56   
    ::aws_smithy_json::deserialize::error::DeserializeError,
   57     57   
>
   58     58   
where
   59     59   
    I: Iterator<
   60     60   
        Item = Result<
   61     61   
            ::aws_smithy_json::deserialize::Token<'a>,
   62     62   
            ::aws_smithy_json::deserialize::error::DeserializeError,
   63     63   
        >,
   64     64   
    >,
   65     65   
{
   66         -
    /* JsonParserGenerator.kt:749 */
          66  +
    /* JsonParserGenerator.kt:731 */
   67     67   
    match tokens.next().transpose()? {
   68         -
        /* JsonParserGenerator.kt:750 */
          68  +
        /* JsonParserGenerator.kt:732 */
   69     69   
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   70     70   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
   71     71   
            /* RustType.kt:534 */
   72     72   
            #[allow(unused_mut)]
   73         -
            /* JsonParserGenerator.kt:563 */
          73  +
            /* JsonParserGenerator.kt:545 */
   74     74   
            let mut builder = crate::model::payload_structure::Builder::default();
   75         -
            /* JsonParserGenerator.kt:721 */
          75  +
            /* JsonParserGenerator.kt:703 */
   76     76   
            loop {
   77         -
                /* JsonParserGenerator.kt:722 */
          77  +
                /* JsonParserGenerator.kt:704 */
   78     78   
                match tokens.next().transpose()? {
   79         -
                    /* JsonParserGenerator.kt:723 */
          79  +
                    /* JsonParserGenerator.kt:705 */
   80     80   
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   81     81   
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
   82     82   
                        /* JsonParserGenerator.kt:265 */
   83     83   
                        match key.to_unescaped()?.as_ref() {
   84     84   
                            /* JsonParserGenerator.kt:267 */
   85     85   
                            "structureMember" => {
   86     86   
                                /* JsonParserGenerator.kt:277 */
   87     87   
                                builder = builder.set_structure_member(
   88     88   
                                    /* JsonParserGenerator.kt:361 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
   89     89   
                                        /* JsonParserGenerator.kt:346 */s.to_unescaped().map(|u|
   90     90   
                                            /* JsonParserGenerator.kt:355 */u.into_owned()
   91     91   
                                        /* JsonParserGenerator.kt:346 */)
   92     92   
                                    /* JsonParserGenerator.kt:361 */).transpose()?
   93     93   
                                /* JsonParserGenerator.kt:277 */);
   94     94   
                                /* JsonParserGenerator.kt:267 */
   95     95   
                            }
   96     96   
                            /* JsonParserGenerator.kt:295 */
   97     97   
                            _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:265 */
   98     98   
                        }
   99         -
                        /* JsonParserGenerator.kt:723 */
          99  +
                        /* JsonParserGenerator.kt:705 */
  100    100   
                    }
  101         -
                    /* JsonParserGenerator.kt:732 */
         101  +
                    /* JsonParserGenerator.kt:714 */
  102    102   
                    other => {
  103    103   
                        return Err(
  104    104   
                            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  105    105   
                                format!("expected object key or end object, found: {other:?}"),
  106    106   
                            ),
  107    107   
                        )
  108         -
                    } /* JsonParserGenerator.kt:722 */
         108  +
                    } /* JsonParserGenerator.kt:704 */
  109    109   
                }
  110         -
                /* JsonParserGenerator.kt:721 */
         110  +
                /* JsonParserGenerator.kt:703 */
  111    111   
            }
  112         -
            /* JsonParserGenerator.kt:577 */
         112  +
            /* JsonParserGenerator.kt:559 */
  113    113   
            Ok(Some(builder.build()))
  114         -
            /* JsonParserGenerator.kt:750 */
         114  +
            /* JsonParserGenerator.kt:732 */
  115    115   
        }
  116         -
        /* JsonParserGenerator.kt:759 */
         116  +
        /* JsonParserGenerator.kt:741 */
  117    117   
        _ => {
  118         -
            /* JsonParserGenerator.kt:760 */
         118  +
            /* JsonParserGenerator.kt:742 */
  119    119   
            Err(
  120    120   
                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  121    121   
                    "expected start object or null",
  122    122   
                ),
  123    123   
            )
  124         -
            /* JsonParserGenerator.kt:759 */
  125         -
        } /* JsonParserGenerator.kt:749 */
         124  +
            /* JsonParserGenerator.kt:741 */
         125  +
        } /* JsonParserGenerator.kt:731 */
  126    126   
    }
  127         -
    /* JsonParserGenerator.kt:553 */
         127  +
    /* JsonParserGenerator.kt:535 */
  128    128   
}

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_payload_union.rs

@@ -1,1 +168,168 @@
    7      7   
    ::aws_smithy_json::deserialize::error::DeserializeError,
    8      8   
> {
    9      9   
    /* JsonParserGenerator.kt:192 */
   10     10   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(
   11     11   
        crate::protocol_serde::or_empty_doc(_value),
   12     12   
    )
   13     13   
    .peekable();
   14     14   
    let tokens = &mut tokens_owned;
   15     15   
    /* JsonParserGenerator.kt:199 */
   16     16   
    let result =
   17         -
    /* JsonParserGenerator.kt:697 */crate::protocol_serde::shape_payload_union::de_payload_union(tokens, _value)?
          17  +
    /* JsonParserGenerator.kt:679 */crate::protocol_serde::shape_payload_union::de_payload_union(tokens, _value)?
   18     18   
    /* JsonParserGenerator.kt:201 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("expected payload member value"));
   19     19   
    /* JsonParserGenerator.kt:255 */
   20     20   
    if tokens.next().is_some() {
   21     21   
        /* JsonParserGenerator.kt:256 */
   22     22   
        return Err(
   23     23   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
   24     24   
                "found more JSON tokens after completing parsing",
   25     25   
            ),
   26     26   
        );
   27     27   
        /* JsonParserGenerator.kt:255 */
   28     28   
    }
   29     29   
    /* JsonParserGenerator.kt:203 */
   30     30   
    result
   31     31   
    /* JsonParserGenerator.kt:180 */
   32     32   
}
   33     33   
   34     34   
/* JsonSerializerGenerator.kt:559 */
   35     35   
pub fn ser_payload_union(
   36     36   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
   37     37   
    input: &crate::model::PayloadUnion,
   38     38   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
   39     39   
    /* JsonSerializerGenerator.kt:568 */
   40     40   
    match input {
   41     41   
        /* JsonSerializerGenerator.kt:576 */
   42     42   
        crate::model::PayloadUnion::UnionMember(inner) => {
   43     43   
            /* SerializerUtil.kt:42 */
   44     44   
            {
   45     45   
                /* JsonSerializerGenerator.kt:425 */
   46     46   
                object.key("unionMember").string(inner.as_str());
   47     47   
                /* SerializerUtil.kt:42 */
   48     48   
            }
   49     49   
            /* JsonSerializerGenerator.kt:576 */
   50     50   
        }
   51     51   
        /* JsonSerializerGenerator.kt:568 */
   52     52   
    }
   53     53   
    /* JsonSerializerGenerator.kt:588 */
   54     54   
    Ok(())
   55     55   
    /* JsonSerializerGenerator.kt:559 */
   56     56   
}
   57     57   
   58         -
/* JsonParserGenerator.kt:588 */
          58  +
/* JsonParserGenerator.kt:570 */
   59     59   
pub(crate) fn de_payload_union<'a, I>(
   60     60   
    tokens: &mut ::std::iter::Peekable<I>,
   61     61   
    _value: &'a [u8],
   62     62   
) -> ::std::result::Result<
   63     63   
    Option<crate::model::PayloadUnion>,
   64     64   
    ::aws_smithy_json::deserialize::error::DeserializeError,
   65     65   
>
   66     66   
where
   67     67   
    I: Iterator<
   68     68   
        Item = Result<
   69     69   
            ::aws_smithy_json::deserialize::Token<'a>,
   70     70   
            ::aws_smithy_json::deserialize::error::DeserializeError,
   71     71   
        >,
   72     72   
    >,
   73     73   
{
   74         -
    /* JsonParserGenerator.kt:602 */
          74  +
    /* JsonParserGenerator.kt:584 */
   75     75   
    let mut variant = None;
   76         -
    /* JsonParserGenerator.kt:604 */
          76  +
    /* JsonParserGenerator.kt:586 */
   77     77   
    match tokens.next().transpose()? {
   78         -
        /* JsonParserGenerator.kt:605 */
          78  +
        /* JsonParserGenerator.kt:587 */
   79     79   
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
   80     80   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
   81         -
            /* JsonParserGenerator.kt:721 */
          81  +
            /* JsonParserGenerator.kt:703 */
   82     82   
            loop {
   83         -
                /* JsonParserGenerator.kt:722 */
          83  +
                /* JsonParserGenerator.kt:704 */
   84     84   
                match tokens.next().transpose()? {
   85         -
                    /* JsonParserGenerator.kt:723 */
          85  +
                    /* JsonParserGenerator.kt:705 */
   86     86   
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   87     87   
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
   88         -
                        /* JsonParserGenerator.kt:613 */
          88  +
                        /* JsonParserGenerator.kt:595 */
   89     89   
                        if let ::std::option::Option::Some(::std::result::Result::Ok(
   90     90   
                            ::aws_smithy_json::deserialize::Token::ValueNull { .. },
   91     91   
                        )) = tokens.peek()
   92     92   
                        {
   93     93   
                            let _ = tokens.next().expect("peek returned a token")?;
   94     94   
                            continue;
   95     95   
                        }
   96         -
                        /* JsonParserGenerator.kt:622 */
          96  +
                        /* JsonParserGenerator.kt:604 */
   97     97   
                        let key = key.to_unescaped()?;
   98     98   
                        if key == "__type" {
   99     99   
                            ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
  100    100   
                            continue;
  101    101   
                        }
  102    102   
                        if variant.is_some() {
  103    103   
                            return Err(
  104    104   
                                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  105    105   
                                    "encountered mixed variants in union",
  106    106   
                                ),
  107    107   
                            );
  108    108   
                        }
  109         -
                        /* JsonParserGenerator.kt:635 */
         109  +
                        /* JsonParserGenerator.kt:617 */
  110    110   
                        variant = match key.as_ref() {
  111         -
                            /* JsonParserGenerator.kt:638 */
         111  +
                            /* JsonParserGenerator.kt:620 */
  112    112   
                            "unionMember" => {
  113         -
                                /* JsonParserGenerator.kt:648 */
         113  +
                                /* JsonParserGenerator.kt:630 */
  114    114   
                                Some(crate::model::PayloadUnion::UnionMember(
  115    115   
                                    /* JsonParserGenerator.kt:361 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
  116    116   
                                        /* JsonParserGenerator.kt:346 */s.to_unescaped().map(|u|
  117    117   
                                            /* JsonParserGenerator.kt:355 */u.into_owned()
  118    118   
                                        /* JsonParserGenerator.kt:346 */)
  119    119   
                                    /* JsonParserGenerator.kt:361 */).transpose()?
  120         -
                                    /* JsonParserGenerator.kt:707 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'unionMember' cannot be null"))?
  121         -
                                /* JsonParserGenerator.kt:648 */))
  122         -
                                /* JsonParserGenerator.kt:638 */
         120  +
                                    /* JsonParserGenerator.kt:689 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'unionMember' cannot be null"))?
         121  +
                                /* JsonParserGenerator.kt:630 */))
         122  +
                                /* JsonParserGenerator.kt:620 */
  123    123   
                            }
  124         -
                            /* JsonParserGenerator.kt:671 */
         124  +
                            /* JsonParserGenerator.kt:653 */
  125    125   
                            variant => {
  126    126   
                                return Err(
  127    127   
                                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  128    128   
                                        format!("unexpected union variant: {variant}"),
  129    129   
                                    ),
  130    130   
                                )
  131         -
                            } /* JsonParserGenerator.kt:635 */
         131  +
                            } /* JsonParserGenerator.kt:617 */
  132    132   
                        };
  133         -
                        /* JsonParserGenerator.kt:723 */
         133  +
                        /* JsonParserGenerator.kt:705 */
  134    134   
                    }
  135         -
                    /* JsonParserGenerator.kt:732 */
         135  +
                    /* JsonParserGenerator.kt:714 */
  136    136   
                    other => {
  137    137   
                        return Err(
  138    138   
                            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  139    139   
                                format!("expected object key or end object, found: {other:?}"),
  140    140   
                            ),
  141    141   
                        )
  142         -
                    } /* JsonParserGenerator.kt:722 */
         142  +
                    } /* JsonParserGenerator.kt:704 */
  143    143   
                }
  144         -
                /* JsonParserGenerator.kt:721 */
         144  +
                /* JsonParserGenerator.kt:703 */
  145    145   
            }
  146         -
            /* JsonParserGenerator.kt:605 */
         146  +
            /* JsonParserGenerator.kt:587 */
  147    147   
        }
  148         -
        /* JsonParserGenerator.kt:679 */
         148  +
        /* JsonParserGenerator.kt:661 */
  149    149   
        _ => {
  150    150   
            return Err(
  151    151   
                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  152    152   
                    "expected start object or null",
  153    153   
                ),
  154    154   
            )
  155         -
        } /* JsonParserGenerator.kt:604 */
         155  +
        } /* JsonParserGenerator.kt:586 */
  156    156   
    }
  157         -
    /* JsonParserGenerator.kt:686 */
         157  +
    /* JsonParserGenerator.kt:668 */
  158    158   
    if variant.is_none() {
  159    159   
        return Err(
  160    160   
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
  161    161   
                "Union did not contain a valid variant.",
  162    162   
            ),
  163    163   
        );
  164    164   
    }
  165         -
    /* JsonParserGenerator.kt:694 */
         165  +
    /* JsonParserGenerator.kt:676 */
  166    166   
    Ok(variant)
  167         -
    /* JsonParserGenerator.kt:588 */
         167  +
    /* JsonParserGenerator.kt:570 */
  168    168   
}