Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943

Files changed:

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_attribute_name_list.rs

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

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_attribute_value.rs

@@ -1,1 +183,410 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:547 */
    2      3   
pub fn ser_attribute_value(
    3      4   
    object_6: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::types::AttributeValue,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:556 */
    6      8   
    match input {
           9  +
        /* JsonSerializerGenerator.kt:564 */
    7     10   
        crate::types::AttributeValue::S(inner) => {
    8         -
            object_6.key("S").string(inner.as_str());
          11  +
            /* SerializerUtil.kt:42 */
          12  +
            {
          13  +
                /* JsonSerializerGenerator.kt:423 */
          14  +
                object_6.key("S").string(inner.as_str());
          15  +
                /* SerializerUtil.kt:42 */
          16  +
            }
          17  +
            /* JsonSerializerGenerator.kt:564 */
    9     18   
        }
          19  +
        /* JsonSerializerGenerator.kt:564 */
   10     20   
        crate::types::AttributeValue::N(inner) => {
   11         -
            object_6.key("N").string(inner.as_str());
          21  +
            /* SerializerUtil.kt:42 */
          22  +
            {
          23  +
                /* JsonSerializerGenerator.kt:423 */
          24  +
                object_6.key("N").string(inner.as_str());
          25  +
                /* SerializerUtil.kt:42 */
          26  +
            }
          27  +
            /* JsonSerializerGenerator.kt:564 */
   12     28   
        }
          29  +
        /* JsonSerializerGenerator.kt:564 */
   13     30   
        crate::types::AttributeValue::B(inner) => {
   14         -
            object_6.key("B").string_unchecked(&::aws_smithy_types::base64::encode(inner));
          31  +
            /* SerializerUtil.kt:42 */
          32  +
            {
          33  +
                /* JsonSerializerGenerator.kt:439 */
          34  +
                object_6.key("B").string_unchecked(&::aws_smithy_types::base64::encode(inner));
          35  +
                /* SerializerUtil.kt:42 */
          36  +
            }
          37  +
            /* JsonSerializerGenerator.kt:564 */
   15     38   
        }
          39  +
        /* JsonSerializerGenerator.kt:564 */
   16     40   
        crate::types::AttributeValue::Ss(inner) => {
   17         -
            let mut array_1 = object_6.key("SS").start_array();
   18         -
            for item_2 in inner {
   19         -
                {
   20         -
                    array_1.value().string(item_2.as_str());
          41  +
            /* SerializerUtil.kt:42 */
          42  +
            {
          43  +
                /* JsonSerializerGenerator.kt:484 */
          44  +
                let mut array_1 = object_6.key("SS").start_array();
          45  +
                /* JsonSerializerGenerator.kt:524 */
          46  +
                for item_2 in inner {
          47  +
                    /* SerializerUtil.kt:42 */
          48  +
                    {
          49  +
                        /* JsonSerializerGenerator.kt:423 */
          50  +
                        array_1.value().string(item_2.as_str());
          51  +
                        /* SerializerUtil.kt:42 */
          52  +
                    }
          53  +
                    /* JsonSerializerGenerator.kt:524 */
   21     54   
                }
          55  +
                /* JsonSerializerGenerator.kt:486 */
          56  +
                array_1.finish();
          57  +
                /* SerializerUtil.kt:42 */
   22     58   
            }
   23         -
            array_1.finish();
          59  +
            /* JsonSerializerGenerator.kt:564 */
   24     60   
        }
          61  +
        /* JsonSerializerGenerator.kt:564 */
   25     62   
        crate::types::AttributeValue::Ns(inner) => {
   26         -
            let mut array_3 = object_6.key("NS").start_array();
   27         -
            for item_4 in inner {
   28         -
                {
   29         -
                    array_3.value().string(item_4.as_str());
          63  +
            /* SerializerUtil.kt:42 */
          64  +
            {
          65  +
                /* JsonSerializerGenerator.kt:484 */
          66  +
                let mut array_3 = object_6.key("NS").start_array();
          67  +
                /* JsonSerializerGenerator.kt:524 */
          68  +
                for item_4 in inner {
          69  +
                    /* SerializerUtil.kt:42 */
          70  +
                    {
          71  +
                        /* JsonSerializerGenerator.kt:423 */
          72  +
                        array_3.value().string(item_4.as_str());
          73  +
                        /* SerializerUtil.kt:42 */
          74  +
                    }
          75  +
                    /* JsonSerializerGenerator.kt:524 */
   30     76   
                }
          77  +
                /* JsonSerializerGenerator.kt:486 */
          78  +
                array_3.finish();
          79  +
                /* SerializerUtil.kt:42 */
   31     80   
            }
   32         -
            array_3.finish();
          81  +
            /* JsonSerializerGenerator.kt:564 */
   33     82   
        }
          83  +
        /* JsonSerializerGenerator.kt:564 */
   34     84   
        crate::types::AttributeValue::Bs(inner) => {
   35         -
            let mut array_5 = object_6.key("BS").start_array();
   36         -
            for item_6 in inner {
   37         -
                {
   38         -
                    array_5.value().string_unchecked(&::aws_smithy_types::base64::encode(item_6));
          85  +
            /* SerializerUtil.kt:42 */
          86  +
            {
          87  +
                /* JsonSerializerGenerator.kt:484 */
          88  +
                let mut array_5 = object_6.key("BS").start_array();
          89  +
                /* JsonSerializerGenerator.kt:524 */
          90  +
                for item_6 in inner {
          91  +
                    /* SerializerUtil.kt:42 */
          92  +
                    {
          93  +
                        /* JsonSerializerGenerator.kt:439 */
          94  +
                        array_5.value().string_unchecked(&::aws_smithy_types::base64::encode(item_6));
          95  +
                        /* SerializerUtil.kt:42 */
          96  +
                    }
          97  +
                    /* JsonSerializerGenerator.kt:524 */
   39     98   
                }
          99  +
                /* JsonSerializerGenerator.kt:486 */
         100  +
                array_5.finish();
         101  +
                /* SerializerUtil.kt:42 */
   40    102   
            }
   41         -
            array_5.finish();
         103  +
            /* JsonSerializerGenerator.kt:564 */
   42    104   
        }
         105  +
        /* JsonSerializerGenerator.kt:564 */
   43    106   
        crate::types::AttributeValue::M(inner) => {
   44         -
            #[allow(unused_mut)]
   45         -
            let mut object_7 = object_6.key("M").start_object();
   46         -
            for (key_8, value_9) in inner {
   47         -
                {
   48         -
                    #[allow(unused_mut)]
   49         -
                    let mut object_10 = object_7.key(key_8.as_str()).start_object();
   50         -
                    crate::protocol_serde::shape_attribute_value::ser_attribute_value(&mut object_10, value_9)?;
   51         -
                    object_10.finish();
         107  +
            /* SerializerUtil.kt:42 */
         108  +
            {
         109  +
                /* JsonSerializerGenerator.kt:495 */
         110  +
                #[allow(unused_mut)]
         111  +
                /* JsonSerializerGenerator.kt:496 */
         112  +
                let mut object_7 = object_6.key("M").start_object();
         113  +
                /* JsonSerializerGenerator.kt:537 */
         114  +
                for (key_8, value_9) in inner {
         115  +
                    /* SerializerUtil.kt:42 */
         116  +
                    {
         117  +
                        /* JsonSerializerGenerator.kt:495 */
         118  +
                        #[allow(unused_mut)]
         119  +
                        /* JsonSerializerGenerator.kt:496 */
         120  +
                        let mut object_10 = object_7.key(key_8.as_str()).start_object();
         121  +
                        /* JsonSerializerGenerator.kt:579 */
         122  +
                        crate::protocol_serde::shape_attribute_value::ser_attribute_value(&mut object_10, value_9)?;
         123  +
                        /* JsonSerializerGenerator.kt:515 */
         124  +
                        object_10.finish();
         125  +
                        /* SerializerUtil.kt:42 */
         126  +
                    }
         127  +
                    /* JsonSerializerGenerator.kt:537 */
   52    128   
                }
         129  +
                /* JsonSerializerGenerator.kt:515 */
         130  +
                object_7.finish();
         131  +
                /* SerializerUtil.kt:42 */
   53    132   
            }
   54         -
            object_7.finish();
         133  +
            /* JsonSerializerGenerator.kt:564 */
   55    134   
        }
         135  +
        /* JsonSerializerGenerator.kt:564 */
   56    136   
        crate::types::AttributeValue::L(inner) => {
   57         -
            let mut array_11 = object_6.key("L").start_array();
   58         -
            for item_12 in inner {
   59         -
                {
   60         -
                    #[allow(unused_mut)]
   61         -
                    let mut object_13 = array_11.value().start_object();
   62         -
                    crate::protocol_serde::shape_attribute_value::ser_attribute_value(&mut object_13, item_12)?;
   63         -
                    object_13.finish();
         137  +
            /* SerializerUtil.kt:42 */
         138  +
            {
         139  +
                /* JsonSerializerGenerator.kt:484 */
         140  +
                let mut array_11 = object_6.key("L").start_array();
         141  +
                /* JsonSerializerGenerator.kt:524 */
         142  +
                for item_12 in inner {
         143  +
                    /* SerializerUtil.kt:42 */
         144  +
                    {
         145  +
                        /* JsonSerializerGenerator.kt:495 */
         146  +
                        #[allow(unused_mut)]
         147  +
                        /* JsonSerializerGenerator.kt:496 */
         148  +
                        let mut object_13 = array_11.value().start_object();
         149  +
                        /* JsonSerializerGenerator.kt:579 */
         150  +
                        crate::protocol_serde::shape_attribute_value::ser_attribute_value(&mut object_13, item_12)?;
         151  +
                        /* JsonSerializerGenerator.kt:515 */
         152  +
                        object_13.finish();
         153  +
                        /* SerializerUtil.kt:42 */
         154  +
                    }
         155  +
                    /* JsonSerializerGenerator.kt:524 */
   64    156   
                }
         157  +
                /* JsonSerializerGenerator.kt:486 */
         158  +
                array_11.finish();
         159  +
                /* SerializerUtil.kt:42 */
   65    160   
            }
   66         -
            array_11.finish();
         161  +
            /* JsonSerializerGenerator.kt:564 */
   67    162   
        }
         163  +
        /* JsonSerializerGenerator.kt:564 */
   68    164   
        crate::types::AttributeValue::Null(inner) => {
   69         -
            object_6.key("NULL").boolean(*inner);
         165  +
            /* SerializerUtil.kt:42 */
         166  +
            {
         167  +
                /* JsonSerializerGenerator.kt:424 */
         168  +
                object_6.key("NULL").boolean(*inner);
         169  +
                /* SerializerUtil.kt:42 */
         170  +
            }
         171  +
            /* JsonSerializerGenerator.kt:564 */
   70    172   
        }
         173  +
        /* JsonSerializerGenerator.kt:564 */
   71    174   
        crate::types::AttributeValue::Bool(inner) => {
   72         -
            object_6.key("BOOL").boolean(*inner);
         175  +
            /* SerializerUtil.kt:42 */
         176  +
            {
         177  +
                /* JsonSerializerGenerator.kt:424 */
         178  +
                object_6.key("BOOL").boolean(*inner);
         179  +
                /* SerializerUtil.kt:42 */
         180  +
            }
         181  +
            /* JsonSerializerGenerator.kt:564 */
   73    182   
        }
         183  +
        /* JsonSerializerGenerator.kt:569 */
   74    184   
        crate::types::AttributeValue::Unknown => {
   75    185   
            return Err(::aws_smithy_types::error::operation::SerializationError::unknown_variant(
   76    186   
                "AttributeValue",
   77    187   
            ))
   78         -
        }
         188  +
        } /* JsonSerializerGenerator.kt:556 */
   79    189   
    }
         190  +
    /* JsonSerializerGenerator.kt:576 */
   80    191   
    Ok(())
         192  +
    /* JsonSerializerGenerator.kt:547 */
   81    193   
}
   82    194   
         195  +
/* JsonParserGenerator.kt:551 */
   83    196   
pub(crate) fn de_attribute_value<'a, I>(
   84    197   
    tokens: &mut ::std::iter::Peekable<I>,
   85    198   
) -> ::std::result::Result<Option<crate::types::AttributeValue>, ::aws_smithy_json::deserialize::error::DeserializeError>
   86    199   
where
   87    200   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
   88    201   
{
         202  +
    /* JsonParserGenerator.kt:565 */
   89    203   
    let mut variant = None;
         204  +
    /* JsonParserGenerator.kt:567 */
   90    205   
    match tokens.next().transpose()? {
   91         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
   92         -
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => loop {
   93         -
            match tokens.next().transpose()? {
   94         -
                Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   95         -
                Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
   96         -
                    if let ::std::option::Option::Some(::std::result::Result::Ok(::aws_smithy_json::deserialize::Token::ValueNull { .. })) =
   97         -
                        tokens.peek()
   98         -
                    {
   99         -
                        let _ = tokens.next().expect("peek returned a token")?;
  100         -
                        continue;
  101         -
                    }
  102         -
                    let key = key.to_unescaped()?;
  103         -
                    if key == "__type" {
  104         -
                        ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
  105         -
                        continue;
  106         -
                    }
  107         -
                    if variant.is_some() {
  108         -
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
  109         -
                            "encountered mixed variants in union",
  110         -
                        ));
  111         -
                    }
  112         -
                    variant = match key.as_ref() {
  113         -
                        "S" => Some(crate::types::AttributeValue::S(
  114         -
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  115         -
                                .map(|s| s.to_unescaped().map(|u| u.into_owned()))
  116         -
                                .transpose()?
  117         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'S' cannot be null"))?,
  118         -
                        )),
  119         -
                        "N" => Some(crate::types::AttributeValue::N(
  120         -
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  121         -
                                .map(|s| s.to_unescaped().map(|u| u.into_owned()))
  122         -
                                .transpose()?
  123         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'N' cannot be null"))?,
  124         -
                        )),
  125         -
                        "B" => Some(crate::types::AttributeValue::B(
  126         -
                            ::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?
  127         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'B' cannot be null"))?,
  128         -
                        )),
  129         -
                        "SS" => Some(crate::types::AttributeValue::Ss(
  130         -
                            crate::protocol_serde::shape_string_set_attribute_value::de_string_set_attribute_value(tokens)?
  131         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'SS' cannot be null"))?,
  132         -
                        )),
  133         -
                        "NS" => Some(crate::types::AttributeValue::Ns(
  134         -
                            crate::protocol_serde::shape_number_set_attribute_value::de_number_set_attribute_value(tokens)?
  135         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'NS' cannot be null"))?,
  136         -
                        )),
  137         -
                        "BS" => Some(crate::types::AttributeValue::Bs(
  138         -
                            crate::protocol_serde::shape_binary_set_attribute_value::de_binary_set_attribute_value(tokens)?
  139         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'BS' cannot be null"))?,
  140         -
                        )),
  141         -
                        "M" => Some(crate::types::AttributeValue::M(
  142         -
                            crate::protocol_serde::shape_map_attribute_value::de_map_attribute_value(tokens)?
  143         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'M' cannot be null"))?,
  144         -
                        )),
  145         -
                        "L" => Some(crate::types::AttributeValue::L(
  146         -
                            crate::protocol_serde::shape_list_attribute_value::de_list_attribute_value(tokens)?
  147         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'L' cannot be null"))?,
  148         -
                        )),
  149         -
                        "NULL" => Some(crate::types::AttributeValue::Null(
  150         -
                            ::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?
  151         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'NULL' cannot be null"))?,
  152         -
                        )),
  153         -
                        "BOOL" => Some(crate::types::AttributeValue::Bool(
  154         -
                            ::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?
  155         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'BOOL' cannot be null"))?,
  156         -
                        )),
  157         -
                        _ => {
         206  +
        /* JsonParserGenerator.kt:568 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
         207  +
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
         208  +
            /* JsonParserGenerator.kt:684 */
         209  +
            loop {
         210  +
                /* JsonParserGenerator.kt:685 */
         211  +
                match tokens.next().transpose()? {
         212  +
                    /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
         213  +
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
         214  +
                        /* JsonParserGenerator.kt:576 */
         215  +
                        if let ::std::option::Option::Some(::std::result::Result::Ok(::aws_smithy_json::deserialize::Token::ValueNull { .. })) =
         216  +
                            tokens.peek()
         217  +
                        {
         218  +
                            let _ = tokens.next().expect("peek returned a token")?;
         219  +
                            continue;
         220  +
                        }
         221  +
                        /* JsonParserGenerator.kt:585 */
         222  +
                        let key = key.to_unescaped()?;
         223  +
                        if key == "__type" {
  158    224   
                            ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
  159         -
                            Some(crate::types::AttributeValue::Unknown)
         225  +
                            continue;
  160    226   
                        }
  161         -
                    };
  162         -
                }
  163         -
                other => {
  164         -
                    return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  165         -
                        "expected object key or end object, found: {:?}",
  166         -
                        other
  167         -
                    )))
         227  +
                        if variant.is_some() {
         228  +
                            return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
         229  +
                                "encountered mixed variants in union",
         230  +
                            ));
         231  +
                        }
         232  +
                        /* JsonParserGenerator.kt:598 */
         233  +
                        variant = match key.as_ref() {
         234  +
                            /* JsonParserGenerator.kt:601 */
         235  +
                            "S" => {
         236  +
                                /* JsonParserGenerator.kt:611 */
         237  +
                                Some(crate::types::AttributeValue::S(
         238  +
                                    /* JsonParserGenerator.kt:354 */
         239  +
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
         240  +
                                        .map(|s|
         241  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         242  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
         243  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         244  +
                                        .transpose()?
         245  +
                                        /* JsonParserGenerator.kt:670 */
         246  +
                                        .ok_or_else(|| {
         247  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'S' cannot be null")
         248  +
                                        })?, /* JsonParserGenerator.kt:611 */
         249  +
                                ))
         250  +
                                /* JsonParserGenerator.kt:601 */
         251  +
                            }
         252  +
                            /* JsonParserGenerator.kt:601 */
         253  +
                            "N" => {
         254  +
                                /* JsonParserGenerator.kt:611 */
         255  +
                                Some(crate::types::AttributeValue::N(
         256  +
                                    /* JsonParserGenerator.kt:354 */
         257  +
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
         258  +
                                        .map(|s|
         259  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         260  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
         261  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         262  +
                                        .transpose()?
         263  +
                                        /* JsonParserGenerator.kt:670 */
         264  +
                                        .ok_or_else(|| {
         265  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'N' cannot be null")
         266  +
                                        })?, /* JsonParserGenerator.kt:611 */
         267  +
                                ))
         268  +
                                /* JsonParserGenerator.kt:601 */
         269  +
                            }
         270  +
                            /* JsonParserGenerator.kt:601 */
         271  +
                            "B" => {
         272  +
                                /* JsonParserGenerator.kt:611 */
         273  +
                                Some(crate::types::AttributeValue::B(
         274  +
                                    /* JsonParserGenerator.kt:326 */
         275  +
                                    ::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?
         276  +
                                        /* JsonParserGenerator.kt:670 */
         277  +
                                        .ok_or_else(|| {
         278  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'B' cannot be null")
         279  +
                                        })?, /* JsonParserGenerator.kt:611 */
         280  +
                                ))
         281  +
                                /* JsonParserGenerator.kt:601 */
         282  +
                            }
         283  +
                            /* JsonParserGenerator.kt:601 */
         284  +
                            "SS" => {
         285  +
                                /* JsonParserGenerator.kt:611 */
         286  +
                                Some(crate::types::AttributeValue::Ss(
         287  +
                                    /* JsonParserGenerator.kt:451 */
         288  +
                                    crate::protocol_serde::shape_string_set_attribute_value::de_string_set_attribute_value(tokens)?
         289  +
                                        /* JsonParserGenerator.kt:670 */
         290  +
                                        .ok_or_else(|| {
         291  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'SS' cannot be null")
         292  +
                                        })?, /* JsonParserGenerator.kt:611 */
         293  +
                                ))
         294  +
                                /* JsonParserGenerator.kt:601 */
         295  +
                            }
         296  +
                            /* JsonParserGenerator.kt:601 */
         297  +
                            "NS" => {
         298  +
                                /* JsonParserGenerator.kt:611 */
         299  +
                                Some(crate::types::AttributeValue::Ns(
         300  +
                                    /* JsonParserGenerator.kt:451 */
         301  +
                                    crate::protocol_serde::shape_number_set_attribute_value::de_number_set_attribute_value(tokens)?
         302  +
                                        /* JsonParserGenerator.kt:670 */
         303  +
                                        .ok_or_else(|| {
         304  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'NS' cannot be null")
         305  +
                                        })?, /* JsonParserGenerator.kt:611 */
         306  +
                                ))
         307  +
                                /* JsonParserGenerator.kt:601 */
         308  +
                            }
         309  +
                            /* JsonParserGenerator.kt:601 */
         310  +
                            "BS" => {
         311  +
                                /* JsonParserGenerator.kt:611 */
         312  +
                                Some(crate::types::AttributeValue::Bs(
         313  +
                                    /* JsonParserGenerator.kt:451 */
         314  +
                                    crate::protocol_serde::shape_binary_set_attribute_value::de_binary_set_attribute_value(tokens)?
         315  +
                                        /* JsonParserGenerator.kt:670 */
         316  +
                                        .ok_or_else(|| {
         317  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'BS' cannot be null")
         318  +
                                        })?, /* JsonParserGenerator.kt:611 */
         319  +
                                ))
         320  +
                                /* JsonParserGenerator.kt:601 */
         321  +
                            }
         322  +
                            /* JsonParserGenerator.kt:601 */
         323  +
                            "M" => {
         324  +
                                /* JsonParserGenerator.kt:611 */
         325  +
                                Some(crate::types::AttributeValue::M(
         326  +
                                    /* JsonParserGenerator.kt:509 */
         327  +
                                    crate::protocol_serde::shape_map_attribute_value::de_map_attribute_value(tokens)?
         328  +
                                        /* JsonParserGenerator.kt:670 */
         329  +
                                        .ok_or_else(|| {
         330  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'M' cannot be null")
         331  +
                                        })?, /* JsonParserGenerator.kt:611 */
         332  +
                                ))
         333  +
                                /* JsonParserGenerator.kt:601 */
         334  +
                            }
         335  +
                            /* JsonParserGenerator.kt:601 */
         336  +
                            "L" => {
         337  +
                                /* JsonParserGenerator.kt:611 */
         338  +
                                Some(crate::types::AttributeValue::L(
         339  +
                                    /* JsonParserGenerator.kt:451 */
         340  +
                                    crate::protocol_serde::shape_list_attribute_value::de_list_attribute_value(tokens)?
         341  +
                                        /* JsonParserGenerator.kt:670 */
         342  +
                                        .ok_or_else(|| {
         343  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'L' cannot be null")
         344  +
                                        })?, /* JsonParserGenerator.kt:611 */
         345  +
                                ))
         346  +
                                /* JsonParserGenerator.kt:601 */
         347  +
                            }
         348  +
                            /* JsonParserGenerator.kt:601 */
         349  +
                            "NULL" => {
         350  +
                                /* JsonParserGenerator.kt:611 */
         351  +
                                Some(crate::types::AttributeValue::Null(
         352  +
                                    /* JsonParserGenerator.kt:298 */
         353  +
                                    ::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?
         354  +
                                        /* JsonParserGenerator.kt:670 */
         355  +
                                        .ok_or_else(|| {
         356  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'NULL' cannot be null")
         357  +
                                        })?, /* JsonParserGenerator.kt:611 */
         358  +
                                ))
         359  +
                                /* JsonParserGenerator.kt:601 */
         360  +
                            }
         361  +
                            /* JsonParserGenerator.kt:601 */
         362  +
                            "BOOL" => {
         363  +
                                /* JsonParserGenerator.kt:611 */
         364  +
                                Some(crate::types::AttributeValue::Bool(
         365  +
                                    /* JsonParserGenerator.kt:298 */
         366  +
                                    ::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?
         367  +
                                        /* JsonParserGenerator.kt:670 */
         368  +
                                        .ok_or_else(|| {
         369  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'BOOL' cannot be null")
         370  +
                                        })?, /* JsonParserGenerator.kt:611 */
         371  +
                                ))
         372  +
                                /* JsonParserGenerator.kt:601 */
         373  +
                            }
         374  +
                            /* JsonParserGenerator.kt:621 */
         375  +
                            _ => {
         376  +
                                ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
         377  +
                                Some(crate::types::AttributeValue::Unknown)
         378  +
                            } /* JsonParserGenerator.kt:598 */
         379  +
                        };
         380  +
                        /* JsonParserGenerator.kt:686 */
         381  +
                    }
         382  +
                    /* JsonParserGenerator.kt:695 */
         383  +
                    other => {
         384  +
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
         385  +
                            "expected object key or end object, found: {:?}",
         386  +
                            other
         387  +
                        )))
         388  +
                    } /* JsonParserGenerator.kt:685 */
  168    389   
                }
         390  +
                /* JsonParserGenerator.kt:684 */
  169    391   
            }
  170         -
        },
         392  +
            /* JsonParserGenerator.kt:568 */
         393  +
        }
         394  +
        /* JsonParserGenerator.kt:642 */
  171    395   
        _ => {
  172    396   
            return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
  173    397   
                "expected start object or null",
  174    398   
            ))
  175         -
        }
         399  +
        } /* JsonParserGenerator.kt:567 */
  176    400   
    }
         401  +
    /* JsonParserGenerator.kt:649 */
  177    402   
    if variant.is_none() {
  178    403   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
  179    404   
            "Union did not contain a valid variant.",
  180    405   
        ));
  181    406   
    }
         407  +
    /* JsonParserGenerator.kt:657 */
  182    408   
    Ok(variant)
         409  +
    /* JsonParserGenerator.kt:551 */
  183    410   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_attribute_value_update.rs

@@ -1,1 +16,28 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
    2      3   
pub fn ser_attribute_value_update(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::types::AttributeValueUpdate,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.value {
           9  +
        /* JsonSerializerGenerator.kt:495 */
    7     10   
        #[allow(unused_mut)]
          11  +
        /* JsonSerializerGenerator.kt:496 */
    8     12   
        let mut object_2 = object.key("Value").start_object();
          13  +
        /* JsonSerializerGenerator.kt:579 */
    9     14   
        crate::protocol_serde::shape_attribute_value::ser_attribute_value(&mut object_2, var_1)?;
          15  +
        /* JsonSerializerGenerator.kt:515 */
   10     16   
        object_2.finish();
          17  +
        /* JsonSerializerGenerator.kt:382 */
   11     18   
    }
          19  +
    /* JsonSerializerGenerator.kt:382 */
   12     20   
    if let Some(var_3) = &input.action {
          21  +
        /* JsonSerializerGenerator.kt:423 */
   13     22   
        object.key("Action").string(var_3.as_str());
          23  +
        /* JsonSerializerGenerator.kt:382 */
   14     24   
    }
          25  +
    /* JsonSerializerGenerator.kt:372 */
   15     26   
    Ok(())
          27  +
    /* JsonSerializerGenerator.kt:358 */
   16     28   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_auto_scaling_policy_description.rs

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

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_auto_scaling_policy_description_list.rs

@@ -1,1 +32,55 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:398 */
    2      3   
pub(crate) fn de_auto_scaling_policy_description_list<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<Option<::std::vec::Vec<crate::types::AutoScalingPolicyDescription>>, ::aws_smithy_json::deserialize::error::DeserializeError>
    5      6   
where
    6      7   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
    7      8   
{
           9  +
    /* JsonParserGenerator.kt:712 */
    8     10   
    match tokens.next().transpose()? {
    9         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          11  +
        /* JsonParserGenerator.kt:713 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   10     12   
        Some(::aws_smithy_json::deserialize::Token::StartArray { .. }) => {
          13  +
            /* JsonParserGenerator.kt:407 */
   11     14   
            let mut items = Vec::new();
          15  +
            /* JsonParserGenerator.kt:408 */
   12     16   
            loop {
          17  +
                /* JsonParserGenerator.kt:409 */
   13     18   
                match tokens.peek() {
          19  +
                    /* JsonParserGenerator.kt:410 */
   14     20   
                    Some(Ok(::aws_smithy_json::deserialize::Token::EndArray { .. })) => {
          21  +
                        /* JsonParserGenerator.kt:411 */
   15     22   
                        tokens.next().transpose().unwrap();
   16     23   
                        break;
          24  +
                        /* JsonParserGenerator.kt:410 */
   17     25   
                    }
          26  +
                    /* JsonParserGenerator.kt:413 */
   18     27   
                    _ => {
   19         -
                        let value = crate::protocol_serde::shape_auto_scaling_policy_description::de_auto_scaling_policy_description(tokens)?;
          28  +
                        /* JsonParserGenerator.kt:419 */
          29  +
                        let value =
          30  +
                            /* JsonParserGenerator.kt:544 */crate::protocol_serde::shape_auto_scaling_policy_description::de_auto_scaling_policy_description(tokens)?
          31  +
                        /* JsonParserGenerator.kt:419 */;
          32  +
                        /* JsonParserGenerator.kt:422 */
   20     33   
                        if let Some(value) = value {
   21     34   
                            items.push(value);
   22     35   
                        }
   23         -
                    }
          36  +
                        /* JsonParserGenerator.kt:413 */
          37  +
                    } /* JsonParserGenerator.kt:409 */
   24     38   
                }
          39  +
                /* JsonParserGenerator.kt:408 */
   25     40   
            }
          41  +
            /* JsonParserGenerator.kt:446 */
   26     42   
            Ok(Some(items))
          43  +
            /* JsonParserGenerator.kt:713 */
   27     44   
        }
   28         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   29         -
            "expected start array or null",
   30         -
        )),
          45  +
        /* JsonParserGenerator.kt:722 */
          46  +
        _ => {
          47  +
            /* JsonParserGenerator.kt:723 */
          48  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          49  +
                "expected start array or null",
          50  +
            ))
          51  +
            /* JsonParserGenerator.kt:722 */
          52  +
        } /* JsonParserGenerator.kt:712 */
   31     53   
    }
          54  +
    /* JsonParserGenerator.kt:398 */
   32     55   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_auto_scaling_policy_update.rs

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

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_auto_scaling_settings_description.rs

@@ -1,1 +62,110 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:516 */
    2      3   
pub(crate) fn de_auto_scaling_settings_description<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<Option<crate::types::AutoScalingSettingsDescription>, ::aws_smithy_json::deserialize::error::DeserializeError>
    5      6   
where
    6      7   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
    7      8   
{
           9  +
    /* JsonParserGenerator.kt:712 */
    8     10   
    match tokens.next().transpose()? {
    9         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          11  +
        /* JsonParserGenerator.kt:713 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   10     12   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          13  +
            /* RustType.kt:516 */
   11     14   
            #[allow(unused_mut)]
          15  +
            /* JsonParserGenerator.kt:526 */
   12     16   
            let mut builder = crate::types::builders::AutoScalingSettingsDescriptionBuilder::default();
          17  +
            /* JsonParserGenerator.kt:684 */
   13     18   
            loop {
          19  +
                /* JsonParserGenerator.kt:685 */
   14     20   
                match tokens.next().transpose()? {
   15         -
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   16         -
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
   17         -
                        "MinimumUnits" => {
   18         -
                            builder = builder.set_minimum_units(
   19         -
                                ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
   20         -
                                    .map(i64::try_from)
   21         -
                                    .transpose()?,
   22         -
                            );
          21  +
                    /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          22  +
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          23  +
                        /* JsonParserGenerator.kt:260 */
          24  +
                        match key.to_unescaped()?.as_ref() {
          25  +
                            /* JsonParserGenerator.kt:262 */
          26  +
                            "MinimumUnits" => {
          27  +
                                /* JsonParserGenerator.kt:265 */
          28  +
                                builder = builder.set_minimum_units(
          29  +
                                    /* JsonParserGenerator.kt:365 */
          30  +
                                    ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
          31  +
                                        .map(i64::try_from)
          32  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
          33  +
                                );
          34  +
                                /* JsonParserGenerator.kt:262 */
          35  +
                            }
          36  +
                            /* JsonParserGenerator.kt:262 */
          37  +
                            "MaximumUnits" => {
          38  +
                                /* JsonParserGenerator.kt:265 */
          39  +
                                builder = builder.set_maximum_units(
          40  +
                                    /* JsonParserGenerator.kt:365 */
          41  +
                                    ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
          42  +
                                        .map(i64::try_from)
          43  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
          44  +
                                );
          45  +
                                /* JsonParserGenerator.kt:262 */
          46  +
                            }
          47  +
                            /* JsonParserGenerator.kt:262 */
          48  +
                            "AutoScalingDisabled" => {
          49  +
                                /* JsonParserGenerator.kt:265 */
          50  +
                                builder = builder.set_auto_scaling_disabled(
          51  +
                                    /* JsonParserGenerator.kt:298 */
          52  +
                                    ::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?, /* JsonParserGenerator.kt:265 */
          53  +
                                );
          54  +
                                /* JsonParserGenerator.kt:262 */
          55  +
                            }
          56  +
                            /* JsonParserGenerator.kt:262 */
          57  +
                            "AutoScalingRoleArn" => {
          58  +
                                /* JsonParserGenerator.kt:265 */
          59  +
                                builder = builder.set_auto_scaling_role_arn(
          60  +
                                    /* JsonParserGenerator.kt:354 */
          61  +
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
          62  +
                                        .map(|s|
          63  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          64  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
          65  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          66  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
          67  +
                                );
          68  +
                                /* JsonParserGenerator.kt:262 */
          69  +
                            }
          70  +
                            /* JsonParserGenerator.kt:262 */
          71  +
                            "ScalingPolicies" => {
          72  +
                                /* JsonParserGenerator.kt:265 */
          73  +
                                builder = builder.set_scaling_policies(
          74  +
                                    /* JsonParserGenerator.kt:451 */
          75  +
                                    crate::protocol_serde::shape_auto_scaling_policy_description_list::de_auto_scaling_policy_description_list(
          76  +
                                        tokens,
          77  +
                                    )?, /* JsonParserGenerator.kt:265 */
          78  +
                                );
          79  +
                                /* JsonParserGenerator.kt:262 */
          80  +
                            }
          81  +
                            /* JsonParserGenerator.kt:290 */
          82  +
                            _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
   23     83   
                        }
   24         -
                        "MaximumUnits" => {
   25         -
                            builder = builder.set_maximum_units(
   26         -
                                ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
   27         -
                                    .map(i64::try_from)
   28         -
                                    .transpose()?,
   29         -
                            );
   30         -
                        }
   31         -
                        "AutoScalingDisabled" => {
   32         -
                            builder = builder.set_auto_scaling_disabled(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
   33         -
                        }
   34         -
                        "AutoScalingRoleArn" => {
   35         -
                            builder = builder.set_auto_scaling_role_arn(
   36         -
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   37         -
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   38         -
                                    .transpose()?,
   39         -
                            );
   40         -
                        }
   41         -
                        "ScalingPolicies" => {
   42         -
                            builder = builder.set_scaling_policies(
   43         -
                                crate::protocol_serde::shape_auto_scaling_policy_description_list::de_auto_scaling_policy_description_list(tokens)?,
   44         -
                            );
   45         -
                        }
   46         -
                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   47         -
                    },
          84  +
                        /* JsonParserGenerator.kt:686 */
          85  +
                    }
          86  +
                    /* JsonParserGenerator.kt:695 */
   48     87   
                    other => {
   49     88   
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   50     89   
                            "expected object key or end object, found: {:?}",
   51     90   
                            other
   52     91   
                        )))
   53         -
                    }
          92  +
                    } /* JsonParserGenerator.kt:685 */
   54     93   
                }
          94  +
                /* JsonParserGenerator.kt:684 */
   55     95   
            }
          96  +
            /* JsonParserGenerator.kt:540 */
   56     97   
            Ok(Some(builder.build()))
          98  +
            /* JsonParserGenerator.kt:713 */
   57     99   
        }
   58         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   59         -
            "expected start object or null",
   60         -
        )),
         100  +
        /* JsonParserGenerator.kt:722 */
         101  +
        _ => {
         102  +
            /* JsonParserGenerator.kt:723 */
         103  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
         104  +
                "expected start object or null",
         105  +
            ))
         106  +
            /* JsonParserGenerator.kt:722 */
         107  +
        } /* JsonParserGenerator.kt:712 */
   61    108   
    }
         109  +
    /* JsonParserGenerator.kt:516 */
   62    110   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_auto_scaling_settings_update.rs

@@ -1,1 +31,52 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
    2      3   
pub fn ser_auto_scaling_settings_update(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::types::AutoScalingSettingsUpdate,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.minimum_units {
           9  +
        /* JsonSerializerGenerator.kt:432 */
    7     10   
        object.key("MinimumUnits").number(
    8     11   
            #[allow(clippy::useless_conversion)]
    9     12   
            ::aws_smithy_types::Number::NegInt((*var_1).into()),
   10     13   
        );
          14  +
        /* JsonSerializerGenerator.kt:382 */
   11     15   
    }
          16  +
    /* JsonSerializerGenerator.kt:382 */
   12     17   
    if let Some(var_2) = &input.maximum_units {
          18  +
        /* JsonSerializerGenerator.kt:432 */
   13     19   
        object.key("MaximumUnits").number(
   14     20   
            #[allow(clippy::useless_conversion)]
   15     21   
            ::aws_smithy_types::Number::NegInt((*var_2).into()),
   16     22   
        );
          23  +
        /* JsonSerializerGenerator.kt:382 */
   17     24   
    }
          25  +
    /* JsonSerializerGenerator.kt:382 */
   18     26   
    if let Some(var_3) = &input.auto_scaling_disabled {
          27  +
        /* JsonSerializerGenerator.kt:424 */
   19     28   
        object.key("AutoScalingDisabled").boolean(*var_3);
          29  +
        /* JsonSerializerGenerator.kt:382 */
   20     30   
    }
          31  +
    /* JsonSerializerGenerator.kt:382 */
   21     32   
    if let Some(var_4) = &input.auto_scaling_role_arn {
          33  +
        /* JsonSerializerGenerator.kt:423 */
   22     34   
        object.key("AutoScalingRoleArn").string(var_4.as_str());
          35  +
        /* JsonSerializerGenerator.kt:382 */
   23     36   
    }
          37  +
    /* JsonSerializerGenerator.kt:382 */
   24     38   
    if let Some(var_5) = &input.scaling_policy_update {
          39  +
        /* JsonSerializerGenerator.kt:495 */
   25     40   
        #[allow(unused_mut)]
          41  +
        /* JsonSerializerGenerator.kt:496 */
   26     42   
        let mut object_6 = object.key("ScalingPolicyUpdate").start_object();
          43  +
        /* JsonSerializerGenerator.kt:375 */
   27     44   
        crate::protocol_serde::shape_auto_scaling_policy_update::ser_auto_scaling_policy_update(&mut object_6, var_5)?;
          45  +
        /* JsonSerializerGenerator.kt:515 */
   28     46   
        object_6.finish();
          47  +
        /* JsonSerializerGenerator.kt:382 */
   29     48   
    }
          49  +
    /* JsonSerializerGenerator.kt:372 */
   30     50   
    Ok(())
          51  +
    /* JsonSerializerGenerator.kt:358 */
   31     52   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_auto_scaling_target_tracking_scaling_policy_configuration_description.rs

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

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_auto_scaling_target_tracking_scaling_policy_configuration_update.rs

@@ -1,1 +28,43 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
    2      3   
pub fn ser_auto_scaling_target_tracking_scaling_policy_configuration_update(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::types::AutoScalingTargetTrackingScalingPolicyConfigurationUpdate,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.disable_scale_in {
           9  +
        /* JsonSerializerGenerator.kt:424 */
    7     10   
        object.key("DisableScaleIn").boolean(*var_1);
          11  +
        /* JsonSerializerGenerator.kt:382 */
    8     12   
    }
          13  +
    /* JsonSerializerGenerator.kt:382 */
    9     14   
    if let Some(var_2) = &input.scale_in_cooldown {
          15  +
        /* JsonSerializerGenerator.kt:432 */
   10     16   
        object.key("ScaleInCooldown").number(
   11     17   
            #[allow(clippy::useless_conversion)]
   12     18   
            ::aws_smithy_types::Number::NegInt((*var_2).into()),
   13     19   
        );
          20  +
        /* JsonSerializerGenerator.kt:382 */
   14     21   
    }
          22  +
    /* JsonSerializerGenerator.kt:382 */
   15     23   
    if let Some(var_3) = &input.scale_out_cooldown {
          24  +
        /* JsonSerializerGenerator.kt:432 */
   16     25   
        object.key("ScaleOutCooldown").number(
   17     26   
            #[allow(clippy::useless_conversion)]
   18     27   
            ::aws_smithy_types::Number::NegInt((*var_3).into()),
   19     28   
        );
          29  +
        /* JsonSerializerGenerator.kt:382 */
   20     30   
    }
          31  +
    /* SerializerUtil.kt:42 */
   21     32   
    {
          33  +
        /* JsonSerializerGenerator.kt:432 */
   22     34   
        object.key("TargetValue").number(
   23     35   
            #[allow(clippy::useless_conversion)]
   24     36   
            ::aws_smithy_types::Number::Float((input.target_value).into()),
   25     37   
        );
          38  +
        /* SerializerUtil.kt:42 */
   26     39   
    }
          40  +
    /* JsonSerializerGenerator.kt:372 */
   27     41   
    Ok(())
          42  +
    /* JsonSerializerGenerator.kt:358 */
   28     43   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_backup_description.rs

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

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_backup_details.rs

@@ -1,1 +82,147 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:516 */
    2      3   
pub(crate) fn de_backup_details<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<Option<crate::types::BackupDetails>, ::aws_smithy_json::deserialize::error::DeserializeError>
    5      6   
where
    6      7   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
    7      8   
{
           9  +
    /* JsonParserGenerator.kt:712 */
    8     10   
    match tokens.next().transpose()? {
    9         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          11  +
        /* JsonParserGenerator.kt:713 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   10     12   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          13  +
            /* RustType.kt:516 */
   11     14   
            #[allow(unused_mut)]
          15  +
            /* JsonParserGenerator.kt:526 */
   12     16   
            let mut builder = crate::types::builders::BackupDetailsBuilder::default();
          17  +
            /* JsonParserGenerator.kt:684 */
   13     18   
            loop {
          19  +
                /* JsonParserGenerator.kt:685 */
   14     20   
                match tokens.next().transpose()? {
   15         -
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   16         -
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
   17         -
                        "BackupArn" => {
   18         -
                            builder = builder.set_backup_arn(
   19         -
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   20         -
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   21         -
                                    .transpose()?,
   22         -
                            );
          21  +
                    /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          22  +
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          23  +
                        /* JsonParserGenerator.kt:260 */
          24  +
                        match key.to_unescaped()?.as_ref() {
          25  +
                            /* JsonParserGenerator.kt:262 */
          26  +
                            "BackupArn" => {
          27  +
                                /* JsonParserGenerator.kt:265 */
          28  +
                                builder = builder.set_backup_arn(
          29  +
                                    /* JsonParserGenerator.kt:354 */
          30  +
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
          31  +
                                        .map(|s|
          32  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          33  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
          34  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          35  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
          36  +
                                );
          37  +
                                /* JsonParserGenerator.kt:262 */
          38  +
                            }
          39  +
                            /* JsonParserGenerator.kt:262 */
          40  +
                            "BackupName" => {
          41  +
                                /* JsonParserGenerator.kt:265 */
          42  +
                                builder = builder.set_backup_name(
          43  +
                                    /* JsonParserGenerator.kt:354 */
          44  +
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
          45  +
                                        .map(|s|
          46  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          47  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
          48  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          49  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
          50  +
                                );
          51  +
                                /* JsonParserGenerator.kt:262 */
          52  +
                            }
          53  +
                            /* JsonParserGenerator.kt:262 */
          54  +
                            "BackupSizeBytes" => {
          55  +
                                /* JsonParserGenerator.kt:265 */
          56  +
                                builder = builder.set_backup_size_bytes(
          57  +
                                    /* JsonParserGenerator.kt:365 */
          58  +
                                    ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
          59  +
                                        .map(i64::try_from)
          60  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
          61  +
                                );
          62  +
                                /* JsonParserGenerator.kt:262 */
          63  +
                            }
          64  +
                            /* JsonParserGenerator.kt:262 */
          65  +
                            "BackupStatus" => {
          66  +
                                /* JsonParserGenerator.kt:265 */
          67  +
                                builder = builder.set_backup_status(
          68  +
                                    /* JsonParserGenerator.kt:354 */
          69  +
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
          70  +
                                        .map(|s|
          71  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          72  +
                                            /* JsonParserGenerator.kt:345 */crate::types::BackupStatus::from(u.as_ref())
          73  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          74  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
          75  +
                                );
          76  +
                                /* JsonParserGenerator.kt:262 */
          77  +
                            }
          78  +
                            /* JsonParserGenerator.kt:262 */
          79  +
                            "BackupType" => {
          80  +
                                /* JsonParserGenerator.kt:265 */
          81  +
                                builder = builder.set_backup_type(
          82  +
                                    /* JsonParserGenerator.kt:354 */
          83  +
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
          84  +
                                        .map(|s|
          85  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          86  +
                                            /* JsonParserGenerator.kt:345 */crate::types::BackupType::from(u.as_ref())
          87  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          88  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
          89  +
                                );
          90  +
                                /* JsonParserGenerator.kt:262 */
          91  +
                            }
          92  +
                            /* JsonParserGenerator.kt:262 */
          93  +
                            "BackupCreationDateTime" => {
          94  +
                                /* JsonParserGenerator.kt:265 */
          95  +
                                builder = builder.set_backup_creation_date_time(
          96  +
                                    /* JsonParserGenerator.kt:384 */
          97  +
                                    ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
          98  +
                                        tokens.next(),
          99  +
                                        ::aws_smithy_types::date_time::Format::EpochSeconds,
         100  +
                                    )?, /* JsonParserGenerator.kt:265 */
         101  +
                                );
         102  +
                                /* JsonParserGenerator.kt:262 */
         103  +
                            }
         104  +
                            /* JsonParserGenerator.kt:262 */
         105  +
                            "BackupExpiryDateTime" => {
         106  +
                                /* JsonParserGenerator.kt:265 */
         107  +
                                builder = builder.set_backup_expiry_date_time(
         108  +
                                    /* JsonParserGenerator.kt:384 */
         109  +
                                    ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
         110  +
                                        tokens.next(),
         111  +
                                        ::aws_smithy_types::date_time::Format::EpochSeconds,
         112  +
                                    )?, /* JsonParserGenerator.kt:265 */
         113  +
                                );
         114  +
                                /* JsonParserGenerator.kt:262 */
         115  +
                            }
         116  +
                            /* JsonParserGenerator.kt:290 */
         117  +
                            _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
   23    118   
                        }
   24         -
                        "BackupName" => {
   25         -
                            builder = builder.set_backup_name(
   26         -
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   27         -
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   28         -
                                    .transpose()?,
   29         -
                            );
   30         -
                        }
   31         -
                        "BackupSizeBytes" => {
   32         -
                            builder = builder.set_backup_size_bytes(
   33         -
                                ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
   34         -
                                    .map(i64::try_from)
   35         -
                                    .transpose()?,
   36         -
                            );
   37         -
                        }
   38         -
                        "BackupStatus" => {
   39         -
                            builder = builder.set_backup_status(
   40         -
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   41         -
                                    .map(|s| s.to_unescaped().map(|u| crate::types::BackupStatus::from(u.as_ref())))
   42         -
                                    .transpose()?,
   43         -
                            );
   44         -
                        }
   45         -
                        "BackupType" => {
   46         -
                            builder = builder.set_backup_type(
   47         -
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   48         -
                                    .map(|s| s.to_unescaped().map(|u| crate::types::BackupType::from(u.as_ref())))
   49         -
                                    .transpose()?,
   50         -
                            );
   51         -
                        }
   52         -
                        "BackupCreationDateTime" => {
   53         -
                            builder = builder.set_backup_creation_date_time(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
   54         -
                                tokens.next(),
   55         -
                                ::aws_smithy_types::date_time::Format::EpochSeconds,
   56         -
                            )?);
   57         -
                        }
   58         -
                        "BackupExpiryDateTime" => {
   59         -
                            builder = builder.set_backup_expiry_date_time(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
   60         -
                                tokens.next(),
   61         -
                                ::aws_smithy_types::date_time::Format::EpochSeconds,
   62         -
                            )?);
   63         -
                        }
   64         -
                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   65         -
                    },
         119  +
                        /* JsonParserGenerator.kt:686 */
         120  +
                    }
         121  +
                    /* JsonParserGenerator.kt:695 */
   66    122   
                    other => {
   67    123   
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   68    124   
                            "expected object key or end object, found: {:?}",
   69    125   
                            other
   70    126   
                        )))
   71         -
                    }
         127  +
                    } /* JsonParserGenerator.kt:685 */
   72    128   
                }
         129  +
                /* JsonParserGenerator.kt:684 */
   73    130   
            }
         131  +
            /* JsonParserGenerator.kt:540 */
   74    132   
            Ok(Some(crate::serde_util::backup_details_correct_errors(builder).build().map_err(
   75    133   
                |err| ::aws_smithy_json::deserialize::error::DeserializeError::custom_source("Response was invalid", err),
   76    134   
            )?))
         135  +
            /* JsonParserGenerator.kt:713 */
   77    136   
        }
   78         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   79         -
            "expected start object or null",
   80         -
        )),
         137  +
        /* JsonParserGenerator.kt:722 */
         138  +
        _ => {
         139  +
            /* JsonParserGenerator.kt:723 */
         140  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
         141  +
                "expected start object or null",
         142  +
            ))
         143  +
            /* JsonParserGenerator.kt:722 */
         144  +
        } /* JsonParserGenerator.kt:712 */
   81    145   
    }
         146  +
    /* JsonParserGenerator.kt:516 */
   82    147   
}