Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/protocol_serde/shape_list_snapshot_blocks.rs

@@ -1,1 +199,291 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::unnecessary_wraps)]
           4  +
/* ProtocolParserGenerator.kt:99 */
    3      5   
pub fn de_list_snapshot_blocks_http_error(
    4      6   
    _response_status: u16,
    5      7   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
    6      8   
    _response_body: &[u8],
    7      9   
) -> std::result::Result<
    8     10   
    crate::operation::list_snapshot_blocks::ListSnapshotBlocksOutput,
    9     11   
    crate::operation::list_snapshot_blocks::ListSnapshotBlocksError,
   10     12   
> {
          13  +
    /* RustType.kt:516 */
   11     14   
    #[allow(unused_mut)]
          15  +
    /* ProtocolParserGenerator.kt:106 */
   12     16   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   13     17   
        .map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:122 */
   15     21   
    let error_code = match generic.code() {
   16     22   
        Some(code) => code,
   17     23   
        None => return Err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled(generic)),
   18     24   
    };
   19     25   
   20     26   
    let _error_message = generic.message().map(|msg| msg.to_owned());
          27  +
    /* ProtocolParserGenerator.kt:133 */
   21     28   
    Err(match error_code {
          29  +
        /* ProtocolParserGenerator.kt:139 */
   22     30   
        "AccessDeniedException" => crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::AccessDeniedError({
          31  +
            /* RustType.kt:516 */
   23     32   
            #[allow(unused_mut)]
   24         -
            let mut tmp = {
   25         -
                #[allow(unused_mut)]
   26         -
                let mut output = crate::types::error::builders::AccessDeniedErrorBuilder::default();
   27         -
                output = crate::protocol_serde::shape_access_denied_exception::de_access_denied_exception_json_err(_response_body, output)
   28         -
                    .map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
   29         -
                let output = output.meta(generic);
   30         -
                crate::serde_util::access_denied_exception_correct_errors(output)
   31         -
                    .build()
   32         -
                    .map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?
   33         -
            };
          33  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          34  +
                /* ProtocolParserGenerator.kt:146 */ {
          35  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          36  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::AccessDeniedErrorBuilder::default();
          37  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_access_denied_exception::de_access_denied_exception_json_err(_response_body, output).map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
          38  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          39  +
                    /* ClientBuilderInstantiator.kt:46 */crate::serde_util::access_denied_exception_correct_errors(output).build().map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?
          40  +
                /* ProtocolParserGenerator.kt:146 */}
          41  +
            /* ProtocolParserGenerator.kt:145 */;
          42  +
            /* ProtocolParserGenerator.kt:170 */
   34     43   
            if tmp.message.is_none() {
   35     44   
                tmp.message = _error_message;
   36     45   
            }
          46  +
            /* ProtocolParserGenerator.kt:179 */
   37     47   
            tmp
          48  +
            /* ProtocolParserGenerator.kt:139 */
   38     49   
        }),
          50  +
        /* ProtocolParserGenerator.kt:139 */
   39     51   
        "InternalServerException" => crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::InternalServerError({
          52  +
            /* RustType.kt:516 */
   40     53   
            #[allow(unused_mut)]
   41         -
            let mut tmp = {
   42         -
                #[allow(unused_mut)]
   43         -
                let mut output = crate::types::error::builders::InternalServerErrorBuilder::default();
   44         -
                output = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(_response_body, output)
   45         -
                    .map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
   46         -
                let output = output.meta(generic);
   47         -
                output.build()
   48         -
            };
          54  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          55  +
                /* ProtocolParserGenerator.kt:146 */ {
          56  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          57  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::InternalServerErrorBuilder::default();
          58  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(_response_body, output).map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
          59  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          60  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          61  +
                /* ProtocolParserGenerator.kt:146 */}
          62  +
            /* ProtocolParserGenerator.kt:145 */;
          63  +
            /* ProtocolParserGenerator.kt:170 */
   49     64   
            if tmp.message.is_none() {
   50     65   
                tmp.message = _error_message;
   51     66   
            }
          67  +
            /* ProtocolParserGenerator.kt:179 */
   52     68   
            tmp
          69  +
            /* ProtocolParserGenerator.kt:139 */
   53     70   
        }),
          71  +
        /* ProtocolParserGenerator.kt:139 */
   54     72   
        "RequestThrottledException" => crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::RequestThrottledError({
          73  +
            /* RustType.kt:516 */
   55     74   
            #[allow(unused_mut)]
   56         -
            let mut tmp = {
   57         -
                #[allow(unused_mut)]
   58         -
                let mut output = crate::types::error::builders::RequestThrottledErrorBuilder::default();
   59         -
                output = crate::protocol_serde::shape_request_throttled_exception::de_request_throttled_exception_json_err(_response_body, output)
   60         -
                    .map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
   61         -
                let output = output.meta(generic);
   62         -
                output.build()
   63         -
            };
          75  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          76  +
                /* ProtocolParserGenerator.kt:146 */ {
          77  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          78  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::RequestThrottledErrorBuilder::default();
          79  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_request_throttled_exception::de_request_throttled_exception_json_err(_response_body, output).map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
          80  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          81  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          82  +
                /* ProtocolParserGenerator.kt:146 */}
          83  +
            /* ProtocolParserGenerator.kt:145 */;
          84  +
            /* ProtocolParserGenerator.kt:170 */
   64     85   
            if tmp.message.is_none() {
   65     86   
                tmp.message = _error_message;
   66     87   
            }
          88  +
            /* ProtocolParserGenerator.kt:179 */
   67     89   
            tmp
          90  +
            /* ProtocolParserGenerator.kt:139 */
   68     91   
        }),
          92  +
        /* ProtocolParserGenerator.kt:139 */
   69     93   
        "ResourceNotFoundException" => crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::ResourceNotFoundError({
          94  +
            /* RustType.kt:516 */
   70     95   
            #[allow(unused_mut)]
   71         -
            let mut tmp = {
   72         -
                #[allow(unused_mut)]
   73         -
                let mut output = crate::types::error::builders::ResourceNotFoundErrorBuilder::default();
   74         -
                output = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(_response_body, output)
   75         -
                    .map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
   76         -
                let output = output.meta(generic);
   77         -
                output.build()
   78         -
            };
          96  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          97  +
                /* ProtocolParserGenerator.kt:146 */ {
          98  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          99  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ResourceNotFoundErrorBuilder::default();
         100  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(_response_body, output).map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
         101  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
         102  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
         103  +
                /* ProtocolParserGenerator.kt:146 */}
         104  +
            /* ProtocolParserGenerator.kt:145 */;
         105  +
            /* ProtocolParserGenerator.kt:170 */
   79    106   
            if tmp.message.is_none() {
   80    107   
                tmp.message = _error_message;
   81    108   
            }
         109  +
            /* ProtocolParserGenerator.kt:179 */
   82    110   
            tmp
         111  +
            /* ProtocolParserGenerator.kt:139 */
   83    112   
        }),
         113  +
        /* ProtocolParserGenerator.kt:139 */
   84    114   
        "ServiceQuotaExceededException" => crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::ServiceQuotaExceededError({
         115  +
            /* RustType.kt:516 */
   85    116   
            #[allow(unused_mut)]
   86         -
            let mut tmp = {
   87         -
                #[allow(unused_mut)]
   88         -
                let mut output = crate::types::error::builders::ServiceQuotaExceededErrorBuilder::default();
   89         -
                output = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(
   90         -
                    _response_body,
   91         -
                    output,
   92         -
                )
   93         -
                .map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
   94         -
                let output = output.meta(generic);
   95         -
                output.build()
   96         -
            };
         117  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
         118  +
                /* ProtocolParserGenerator.kt:146 */ {
         119  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
         120  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ServiceQuotaExceededErrorBuilder::default();
         121  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(_response_body, output).map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
         122  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
         123  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
         124  +
                /* ProtocolParserGenerator.kt:146 */}
         125  +
            /* ProtocolParserGenerator.kt:145 */;
         126  +
            /* ProtocolParserGenerator.kt:170 */
   97    127   
            if tmp.message.is_none() {
   98    128   
                tmp.message = _error_message;
   99    129   
            }
         130  +
            /* ProtocolParserGenerator.kt:179 */
  100    131   
            tmp
         132  +
            /* ProtocolParserGenerator.kt:139 */
  101    133   
        }),
         134  +
        /* ProtocolParserGenerator.kt:139 */
  102    135   
        "ValidationException" => crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::ValidationError({
         136  +
            /* RustType.kt:516 */
  103    137   
            #[allow(unused_mut)]
  104         -
            let mut tmp = {
  105         -
                #[allow(unused_mut)]
  106         -
                let mut output = crate::types::error::builders::ValidationErrorBuilder::default();
  107         -
                output = crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(_response_body, output)
  108         -
                    .map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
  109         -
                let output = output.meta(generic);
  110         -
                output.build()
  111         -
            };
         138  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
         139  +
                /* ProtocolParserGenerator.kt:146 */ {
         140  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
         141  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ValidationErrorBuilder::default();
         142  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(_response_body, output).map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
         143  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
         144  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
         145  +
                /* ProtocolParserGenerator.kt:146 */}
         146  +
            /* ProtocolParserGenerator.kt:145 */;
         147  +
            /* ProtocolParserGenerator.kt:170 */
  112    148   
            if tmp.message.is_none() {
  113    149   
                tmp.message = _error_message;
  114    150   
            }
         151  +
            /* ProtocolParserGenerator.kt:179 */
  115    152   
            tmp
         153  +
            /* ProtocolParserGenerator.kt:139 */
  116    154   
        }),
  117         -
        _ => crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::generic(generic),
         155  +
        /* ProtocolParserGenerator.kt:182 */
         156  +
        _ => crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::generic(generic), /* ProtocolParserGenerator.kt:133 */
  118    157   
    })
         158  +
    /* ProtocolParserGenerator.kt:99 */
  119    159   
}
  120    160   
         161  +
/* RustType.kt:516 */
  121    162   
#[allow(clippy::unnecessary_wraps)]
         163  +
/* ProtocolParserGenerator.kt:71 */
  122    164   
pub fn de_list_snapshot_blocks_http_response(
  123    165   
    _response_status: u16,
  124    166   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
  125    167   
    _response_body: &[u8],
  126    168   
) -> std::result::Result<
  127    169   
    crate::operation::list_snapshot_blocks::ListSnapshotBlocksOutput,
  128    170   
    crate::operation::list_snapshot_blocks::ListSnapshotBlocksError,
  129    171   
> {
         172  +
    /* ProtocolParserGenerator.kt:77 */
  130    173   
    Ok({
         174  +
        /* RustType.kt:516 */
  131    175   
        #[allow(unused_mut)]
         176  +
        /* ProtocolParserGenerator.kt:240 */
  132    177   
        let mut output = crate::operation::list_snapshot_blocks::builders::ListSnapshotBlocksOutputBuilder::default();
         178  +
        /* ProtocolParserGenerator.kt:247 */
  133    179   
        output = crate::protocol_serde::shape_list_snapshot_blocks::de_list_snapshot_blocks(_response_body, output)
  134    180   
            .map_err(crate::operation::list_snapshot_blocks::ListSnapshotBlocksError::unhandled)?;
         181  +
        /* ClientBuilderInstantiator.kt:56 */
  135    182   
        output.build()
         183  +
        /* ProtocolParserGenerator.kt:77 */
  136    184   
    })
         185  +
    /* ProtocolParserGenerator.kt:71 */
  137    186   
}
  138    187   
         188  +
/* JsonParserGenerator.kt:148 */
  139    189   
pub(crate) fn de_list_snapshot_blocks(
  140    190   
    value: &[u8],
  141    191   
    mut builder: crate::operation::list_snapshot_blocks::builders::ListSnapshotBlocksOutputBuilder,
  142    192   
) -> ::std::result::Result<
  143    193   
    crate::operation::list_snapshot_blocks::builders::ListSnapshotBlocksOutputBuilder,
  144    194   
    ::aws_smithy_json::deserialize::error::DeserializeError,
  145    195   
> {
         196  +
    /* JsonParserGenerator.kt:153 */
  146    197   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
  147    198   
    let tokens = &mut tokens_owned;
  148    199   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
         200  +
    /* JsonParserGenerator.kt:684 */
  149    201   
    loop {
         202  +
        /* JsonParserGenerator.kt:685 */
  150    203   
        match tokens.next().transpose()? {
  151         -
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
  152         -
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
         204  +
            /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
         205  +
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
         206  +
                /* JsonParserGenerator.kt:260 */
         207  +
                match key.to_unescaped()?.as_ref() {
         208  +
                    /* JsonParserGenerator.kt:262 */
  153    209   
                    "BlockSize" => {
         210  +
                        /* JsonParserGenerator.kt:265 */
  154    211   
                        builder = builder.set_block_size(
         212  +
                            /* JsonParserGenerator.kt:365 */
  155    213   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  156    214   
                                .map(i32::try_from)
  157         -
                            .transpose()?,
         215  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  158    216   
                        );
         217  +
                        /* JsonParserGenerator.kt:262 */
  159    218   
                    }
         219  +
                    /* JsonParserGenerator.kt:262 */
  160    220   
                    "Blocks" => {
  161         -
                    builder = builder.set_blocks(crate::protocol_serde::shape_blocks::de_blocks(tokens)?);
         221  +
                        /* JsonParserGenerator.kt:265 */
         222  +
                        builder = builder.set_blocks(
         223  +
                            /* JsonParserGenerator.kt:451 */
         224  +
                            crate::protocol_serde::shape_blocks::de_blocks(tokens)?, /* JsonParserGenerator.kt:265 */
         225  +
                        );
         226  +
                        /* JsonParserGenerator.kt:262 */
  162    227   
                    }
         228  +
                    /* JsonParserGenerator.kt:262 */
  163    229   
                    "ExpiryTime" => {
  164         -
                    builder = builder.set_expiry_time(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
         230  +
                        /* JsonParserGenerator.kt:265 */
         231  +
                        builder = builder.set_expiry_time(
         232  +
                            /* JsonParserGenerator.kt:384 */
         233  +
                            ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
  165    234   
                                tokens.next(),
  166    235   
                                ::aws_smithy_types::date_time::Format::EpochSeconds,
  167         -
                    )?);
         236  +
                            )?, /* JsonParserGenerator.kt:265 */
         237  +
                        );
         238  +
                        /* JsonParserGenerator.kt:262 */
  168    239   
                    }
         240  +
                    /* JsonParserGenerator.kt:262 */
  169    241   
                    "NextToken" => {
         242  +
                        /* JsonParserGenerator.kt:265 */
  170    243   
                        builder = builder.set_next_token(
         244  +
                            /* JsonParserGenerator.kt:354 */
  171    245   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  172         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
  173         -
                            .transpose()?,
         246  +
                                .map(|s|
         247  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         248  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
         249  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         250  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  174    251   
                        );
         252  +
                        /* JsonParserGenerator.kt:262 */
  175    253   
                    }
         254  +
                    /* JsonParserGenerator.kt:262 */
  176    255   
                    "VolumeSize" => {
         256  +
                        /* JsonParserGenerator.kt:265 */
  177    257   
                        builder = builder.set_volume_size(
         258  +
                            /* JsonParserGenerator.kt:365 */
  178    259   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  179    260   
                                .map(i64::try_from)
  180         -
                            .transpose()?,
         261  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  181    262   
                        );
         263  +
                        /* JsonParserGenerator.kt:262 */
  182    264   
                    }
  183         -
                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
  184         -
            },
         265  +
                    /* JsonParserGenerator.kt:290 */
         266  +
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
         267  +
                }
         268  +
                /* JsonParserGenerator.kt:686 */
         269  +
            }
         270  +
            /* JsonParserGenerator.kt:695 */
  185    271   
            other => {
  186    272   
                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  187    273   
                    "expected object key or end object, found: {:?}",
  188    274   
                    other
  189    275   
                )))
         276  +
            } /* JsonParserGenerator.kt:685 */
  190    277   
        }
         278  +
        /* JsonParserGenerator.kt:684 */
  191    279   
    }
  192         -
    }
         280  +
    /* JsonParserGenerator.kt:250 */
  193    281   
    if tokens.next().is_some() {
         282  +
        /* JsonParserGenerator.kt:251 */
  194    283   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
  195    284   
            "found more JSON tokens after completing parsing",
  196    285   
        ));
         286  +
        /* JsonParserGenerator.kt:250 */
  197    287   
    }
         288  +
    /* JsonParserGenerator.kt:163 */
  198    289   
    Ok(builder)
         290  +
    /* JsonParserGenerator.kt:148 */
  199    291   
}

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/protocol_serde/shape_put_snapshot_block.rs

@@ -1,1 +194,267 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::unnecessary_wraps)]
           4  +
/* ProtocolParserGenerator.kt:99 */
    3      5   
pub fn de_put_snapshot_block_http_error(
    4      6   
    _response_status: u16,
    5      7   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
    6      8   
    _response_body: &[u8],
    7      9   
) -> std::result::Result<crate::operation::put_snapshot_block::PutSnapshotBlockOutput, crate::operation::put_snapshot_block::PutSnapshotBlockError> {
          10  +
    /* RustType.kt:516 */
    8     11   
    #[allow(unused_mut)]
          12  +
    /* ProtocolParserGenerator.kt:106 */
    9     13   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   10     14   
        .map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:122 */
   12     18   
    let error_code = match generic.code() {
   13     19   
        Some(code) => code,
   14     20   
        None => return Err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled(generic)),
   15     21   
    };
   16     22   
   17     23   
    let _error_message = generic.message().map(|msg| msg.to_owned());
          24  +
    /* ProtocolParserGenerator.kt:133 */
   18     25   
    Err(match error_code {
          26  +
        /* ProtocolParserGenerator.kt:139 */
   19     27   
        "AccessDeniedException" => crate::operation::put_snapshot_block::PutSnapshotBlockError::AccessDeniedError({
          28  +
            /* RustType.kt:516 */
   20     29   
            #[allow(unused_mut)]
   21         -
            let mut tmp = {
   22         -
                #[allow(unused_mut)]
   23         -
                let mut output = crate::types::error::builders::AccessDeniedErrorBuilder::default();
   24         -
                output = crate::protocol_serde::shape_access_denied_exception::de_access_denied_exception_json_err(_response_body, output)
   25         -
                    .map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
   26         -
                let output = output.meta(generic);
   27         -
                crate::serde_util::access_denied_exception_correct_errors(output)
   28         -
                    .build()
   29         -
                    .map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?
   30         -
            };
          30  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          31  +
                /* ProtocolParserGenerator.kt:146 */ {
          32  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          33  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::AccessDeniedErrorBuilder::default();
          34  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_access_denied_exception::de_access_denied_exception_json_err(_response_body, output).map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
          35  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          36  +
                    /* ClientBuilderInstantiator.kt:46 */crate::serde_util::access_denied_exception_correct_errors(output).build().map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?
          37  +
                /* ProtocolParserGenerator.kt:146 */}
          38  +
            /* ProtocolParserGenerator.kt:145 */;
          39  +
            /* ProtocolParserGenerator.kt:170 */
   31     40   
            if tmp.message.is_none() {
   32     41   
                tmp.message = _error_message;
   33     42   
            }
          43  +
            /* ProtocolParserGenerator.kt:179 */
   34     44   
            tmp
          45  +
            /* ProtocolParserGenerator.kt:139 */
   35     46   
        }),
          47  +
        /* ProtocolParserGenerator.kt:139 */
   36     48   
        "InternalServerException" => crate::operation::put_snapshot_block::PutSnapshotBlockError::InternalServerError({
          49  +
            /* RustType.kt:516 */
   37     50   
            #[allow(unused_mut)]
   38         -
            let mut tmp = {
   39         -
                #[allow(unused_mut)]
   40         -
                let mut output = crate::types::error::builders::InternalServerErrorBuilder::default();
   41         -
                output = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(_response_body, output)
   42         -
                    .map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
   43         -
                let output = output.meta(generic);
   44         -
                output.build()
   45         -
            };
          51  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          52  +
                /* ProtocolParserGenerator.kt:146 */ {
          53  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          54  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::InternalServerErrorBuilder::default();
          55  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(_response_body, output).map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
          56  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          57  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          58  +
                /* ProtocolParserGenerator.kt:146 */}
          59  +
            /* ProtocolParserGenerator.kt:145 */;
          60  +
            /* ProtocolParserGenerator.kt:170 */
   46     61   
            if tmp.message.is_none() {
   47     62   
                tmp.message = _error_message;
   48     63   
            }
          64  +
            /* ProtocolParserGenerator.kt:179 */
   49     65   
            tmp
          66  +
            /* ProtocolParserGenerator.kt:139 */
   50     67   
        }),
          68  +
        /* ProtocolParserGenerator.kt:139 */
   51     69   
        "RequestThrottledException" => crate::operation::put_snapshot_block::PutSnapshotBlockError::RequestThrottledError({
          70  +
            /* RustType.kt:516 */
   52     71   
            #[allow(unused_mut)]
   53         -
            let mut tmp = {
   54         -
                #[allow(unused_mut)]
   55         -
                let mut output = crate::types::error::builders::RequestThrottledErrorBuilder::default();
   56         -
                output = crate::protocol_serde::shape_request_throttled_exception::de_request_throttled_exception_json_err(_response_body, output)
   57         -
                    .map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
   58         -
                let output = output.meta(generic);
   59         -
                output.build()
   60         -
            };
          72  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          73  +
                /* ProtocolParserGenerator.kt:146 */ {
          74  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          75  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::RequestThrottledErrorBuilder::default();
          76  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_request_throttled_exception::de_request_throttled_exception_json_err(_response_body, output).map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
          77  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          78  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          79  +
                /* ProtocolParserGenerator.kt:146 */}
          80  +
            /* ProtocolParserGenerator.kt:145 */;
          81  +
            /* ProtocolParserGenerator.kt:170 */
   61     82   
            if tmp.message.is_none() {
   62     83   
                tmp.message = _error_message;
   63     84   
            }
          85  +
            /* ProtocolParserGenerator.kt:179 */
   64     86   
            tmp
          87  +
            /* ProtocolParserGenerator.kt:139 */
   65     88   
        }),
          89  +
        /* ProtocolParserGenerator.kt:139 */
   66     90   
        "ResourceNotFoundException" => crate::operation::put_snapshot_block::PutSnapshotBlockError::ResourceNotFoundError({
          91  +
            /* RustType.kt:516 */
   67     92   
            #[allow(unused_mut)]
   68         -
            let mut tmp = {
   69         -
                #[allow(unused_mut)]
   70         -
                let mut output = crate::types::error::builders::ResourceNotFoundErrorBuilder::default();
   71         -
                output = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(_response_body, output)
   72         -
                    .map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
   73         -
                let output = output.meta(generic);
   74         -
                output.build()
   75         -
            };
          93  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          94  +
                /* ProtocolParserGenerator.kt:146 */ {
          95  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          96  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ResourceNotFoundErrorBuilder::default();
          97  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(_response_body, output).map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
          98  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          99  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
         100  +
                /* ProtocolParserGenerator.kt:146 */}
         101  +
            /* ProtocolParserGenerator.kt:145 */;
         102  +
            /* ProtocolParserGenerator.kt:170 */
   76    103   
            if tmp.message.is_none() {
   77    104   
                tmp.message = _error_message;
   78    105   
            }
         106  +
            /* ProtocolParserGenerator.kt:179 */
   79    107   
            tmp
         108  +
            /* ProtocolParserGenerator.kt:139 */
   80    109   
        }),
         110  +
        /* ProtocolParserGenerator.kt:139 */
   81    111   
        "ServiceQuotaExceededException" => crate::operation::put_snapshot_block::PutSnapshotBlockError::ServiceQuotaExceededError({
         112  +
            /* RustType.kt:516 */
   82    113   
            #[allow(unused_mut)]
   83         -
            let mut tmp = {
   84         -
                #[allow(unused_mut)]
   85         -
                let mut output = crate::types::error::builders::ServiceQuotaExceededErrorBuilder::default();
   86         -
                output = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(
   87         -
                    _response_body,
   88         -
                    output,
   89         -
                )
   90         -
                .map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
   91         -
                let output = output.meta(generic);
   92         -
                output.build()
   93         -
            };
         114  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
         115  +
                /* ProtocolParserGenerator.kt:146 */ {
         116  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
         117  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ServiceQuotaExceededErrorBuilder::default();
         118  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(_response_body, output).map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
         119  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
         120  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
         121  +
                /* ProtocolParserGenerator.kt:146 */}
         122  +
            /* ProtocolParserGenerator.kt:145 */;
         123  +
            /* ProtocolParserGenerator.kt:170 */
   94    124   
            if tmp.message.is_none() {
   95    125   
                tmp.message = _error_message;
   96    126   
            }
         127  +
            /* ProtocolParserGenerator.kt:179 */
   97    128   
            tmp
         129  +
            /* ProtocolParserGenerator.kt:139 */
   98    130   
        }),
         131  +
        /* ProtocolParserGenerator.kt:139 */
   99    132   
        "ValidationException" => crate::operation::put_snapshot_block::PutSnapshotBlockError::ValidationError({
         133  +
            /* RustType.kt:516 */
  100    134   
            #[allow(unused_mut)]
  101         -
            let mut tmp = {
  102         -
                #[allow(unused_mut)]
  103         -
                let mut output = crate::types::error::builders::ValidationErrorBuilder::default();
  104         -
                output = crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(_response_body, output)
  105         -
                    .map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
  106         -
                let output = output.meta(generic);
  107         -
                output.build()
  108         -
            };
         135  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
         136  +
                /* ProtocolParserGenerator.kt:146 */ {
         137  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
         138  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ValidationErrorBuilder::default();
         139  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(_response_body, output).map_err(crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled)?;
         140  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
         141  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
         142  +
                /* ProtocolParserGenerator.kt:146 */}
         143  +
            /* ProtocolParserGenerator.kt:145 */;
         144  +
            /* ProtocolParserGenerator.kt:170 */
  109    145   
            if tmp.message.is_none() {
  110    146   
                tmp.message = _error_message;
  111    147   
            }
         148  +
            /* ProtocolParserGenerator.kt:179 */
  112    149   
            tmp
         150  +
            /* ProtocolParserGenerator.kt:139 */
  113    151   
        }),
  114         -
        _ => crate::operation::put_snapshot_block::PutSnapshotBlockError::generic(generic),
         152  +
        /* ProtocolParserGenerator.kt:182 */
         153  +
        _ => crate::operation::put_snapshot_block::PutSnapshotBlockError::generic(generic), /* ProtocolParserGenerator.kt:133 */
  115    154   
    })
         155  +
    /* ProtocolParserGenerator.kt:99 */
  116    156   
}
  117    157   
         158  +
/* RustType.kt:516 */
  118    159   
#[allow(clippy::unnecessary_wraps)]
         160  +
/* ProtocolParserGenerator.kt:71 */
  119    161   
pub fn de_put_snapshot_block_http_response(
  120    162   
    _response_status: u16,
  121    163   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
  122    164   
    _response_body: &[u8],
  123    165   
) -> std::result::Result<crate::operation::put_snapshot_block::PutSnapshotBlockOutput, crate::operation::put_snapshot_block::PutSnapshotBlockError> {
         166  +
    /* ProtocolParserGenerator.kt:77 */
  124    167   
    Ok({
         168  +
        /* RustType.kt:516 */
  125    169   
        #[allow(unused_mut)]
         170  +
        /* ProtocolParserGenerator.kt:240 */
  126    171   
        let mut output = crate::operation::put_snapshot_block::builders::PutSnapshotBlockOutputBuilder::default();
         172  +
        /* ProtocolParserGenerator.kt:267 */
  127    173   
        output = output.set_checksum(
         174  +
            /* ProtocolParserGenerator.kt:302 */
  128    175   
            crate::protocol_serde::shape_put_snapshot_block_output::de_checksum_header(_response_headers).map_err(|_| {
  129    176   
                crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled("Failed to parse Checksum from header `x-amz-Checksum")
  130         -
            })?,
         177  +
            })?, /* ProtocolParserGenerator.kt:267 */
  131    178   
        );
         179  +
        /* ProtocolParserGenerator.kt:267 */
  132    180   
        output = output.set_checksum_algorithm(
         181  +
            /* ProtocolParserGenerator.kt:302 */
  133    182   
            crate::protocol_serde::shape_put_snapshot_block_output::de_checksum_algorithm_header(_response_headers).map_err(|_| {
  134    183   
                crate::operation::put_snapshot_block::PutSnapshotBlockError::unhandled(
  135    184   
                    "Failed to parse ChecksumAlgorithm from header `x-amz-Checksum-Algorithm",
  136    185   
                )
  137         -
            })?,
         186  +
            })?, /* ProtocolParserGenerator.kt:267 */
  138    187   
        );
         188  +
        /* ClientBuilderInstantiator.kt:56 */
  139    189   
        output.build()
         190  +
        /* ProtocolParserGenerator.kt:77 */
  140    191   
    })
         192  +
    /* ProtocolParserGenerator.kt:71 */
  141    193   
}
  142    194   
         195  +
/* HttpBindingGenerator.kt:542 */
  143    196   
pub fn ser_put_snapshot_block_headers(
  144    197   
    input: &crate::operation::put_snapshot_block::PutSnapshotBlockInput,
  145    198   
    mut builder: ::http::request::Builder,
  146    199   
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
         200  +
    /* HttpBindingGenerator.kt:592 */
  147    201   
    if let ::std::option::Option::Some(inner_1) = &input.checksum {
         202  +
        /* HttpBindingGenerator.kt:704 */
  148    203   
        let formatted_2 = inner_1.as_str();
         204  +
        /* HttpBindingGenerator.kt:706 */
  149    205   
        let header_value = formatted_2;
  150    206   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  151    207   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  152    208   
                "checksum",
  153    209   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  154    210   
            )
  155    211   
        })?;
  156    212   
        builder = builder.header("x-amz-Checksum", header_value);
         213  +
        /* HttpBindingGenerator.kt:592 */
  157    214   
    }
         215  +
    /* HttpBindingGenerator.kt:592 */
  158    216   
    if let ::std::option::Option::Some(inner_3) = &input.progress {
         217  +
        /* HttpBindingGenerator.kt:690 */
  159    218   
        let mut encoder = ::aws_smithy_types::primitive::Encoder::from(*inner_3);
         219  +
        /* HttpBindingGenerator.kt:704 */
  160    220   
        let formatted_4 = encoder.encode();
         221  +
        /* HttpBindingGenerator.kt:706 */
  161    222   
        let header_value = formatted_4;
  162    223   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  163    224   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  164    225   
                "progress",
  165    226   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  166    227   
            )
  167    228   
        })?;
  168    229   
        builder = builder.header("x-amz-Progress", header_value);
         230  +
        /* HttpBindingGenerator.kt:592 */
  169    231   
    }
         232  +
    /* HttpBindingGenerator.kt:592 */
  170    233   
    if let ::std::option::Option::Some(inner_5) = &input.data_length {
         234  +
        /* HttpBindingGenerator.kt:690 */
  171    235   
        let mut encoder = ::aws_smithy_types::primitive::Encoder::from(*inner_5);
         236  +
        /* HttpBindingGenerator.kt:704 */
  172    237   
        let formatted_6 = encoder.encode();
         238  +
        /* HttpBindingGenerator.kt:706 */
  173    239   
        let header_value = formatted_6;
  174    240   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  175    241   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  176    242   
                "data_length",
  177    243   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  178    244   
            )
  179    245   
        })?;
  180    246   
        builder = builder.header("x-amz-Data-Length", header_value);
         247  +
        /* HttpBindingGenerator.kt:592 */
  181    248   
    }
         249  +
    /* HttpBindingGenerator.kt:592 */
  182    250   
    if let ::std::option::Option::Some(inner_7) = &input.checksum_algorithm {
         251  +
        /* HttpBindingGenerator.kt:704 */
  183    252   
        let formatted_8 = inner_7.as_str();
         253  +
        /* HttpBindingGenerator.kt:706 */
  184    254   
        let header_value = formatted_8;
  185    255   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  186    256   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  187    257   
                "checksum_algorithm",
  188    258   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  189    259   
            )
  190    260   
        })?;
  191    261   
        builder = builder.header("x-amz-Checksum-Algorithm", header_value);
         262  +
        /* HttpBindingGenerator.kt:592 */
  192    263   
    }
         264  +
    /* HttpBindingGenerator.kt:555 */
  193    265   
    Ok(builder)
         266  +
    /* HttpBindingGenerator.kt:542 */
  194    267   
}

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/protocol_serde/shape_put_snapshot_block_input.rs

@@ -1,1 +6,11 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* HttpBoundProtocolPayloadGenerator.kt:311 */
    2      3   
pub fn ser_block_data_http_payload(
    3      4   
    payload: ::aws_smithy_types::byte_stream::ByteStream,
    4      5   
) -> ::std::result::Result<::aws_smithy_types::byte_stream::ByteStream, ::aws_smithy_types::error::operation::BuildError> {
    5         -
    Ok(payload)
           6  +
    /* HttpBoundProtocolPayloadGenerator.kt:345 */
           7  +
    Ok(
           8  +
        /* HttpBoundProtocolPayloadGenerator.kt:374 */ payload, /* HttpBoundProtocolPayloadGenerator.kt:345 */
           9  +
    )
          10  +
    /* HttpBoundProtocolPayloadGenerator.kt:311 */
    6     11   
}

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/protocol_serde/shape_put_snapshot_block_output.rs

@@ -1,1 +14,22 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* HttpBindingGenerator.kt:153 */
    2      3   
pub(crate) fn de_checksum_header(
    3      4   
    header_map: &::aws_smithy_runtime_api::http::Headers,
    4      5   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
           6  +
    /* HttpBindingGenerator.kt:160 */
    5      7   
    let headers = header_map.get_all("x-amz-Checksum");
           8  +
    /* HttpBindingGenerator.kt:375 */
    6      9   
    ::aws_smithy_http::header::one_or_none(headers)
          10  +
    /* HttpBindingGenerator.kt:153 */
    7     11   
}
    8     12   
          13  +
/* HttpBindingGenerator.kt:153 */
    9     14   
pub(crate) fn de_checksum_algorithm_header(
   10     15   
    header_map: &::aws_smithy_runtime_api::http::Headers,
   11     16   
) -> ::std::result::Result<::std::option::Option<crate::types::ChecksumAlgorithm>, ::aws_smithy_http::header::ParseError> {
          17  +
    /* HttpBindingGenerator.kt:160 */
   12     18   
    let headers = header_map.get_all("x-amz-Checksum-Algorithm");
          19  +
    /* HttpBindingGenerator.kt:375 */
   13     20   
    ::aws_smithy_http::header::one_or_none(headers)
          21  +
    /* HttpBindingGenerator.kt:153 */
   14     22   
}

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/protocol_serde/shape_request_throttled_exception.rs

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

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/protocol_serde/shape_resource_not_found_exception.rs

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

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/protocol_serde/shape_service_quota_exceeded_exception.rs

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

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/protocol_serde/shape_start_snapshot.rs

@@ -1,1 +271,414 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::unnecessary_wraps)]
           4  +
/* ProtocolParserGenerator.kt:99 */
    3      5   
pub fn de_start_snapshot_http_error(
    4      6   
    _response_status: u16,
    5      7   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
    6      8   
    _response_body: &[u8],
    7      9   
) -> std::result::Result<crate::operation::start_snapshot::StartSnapshotOutput, crate::operation::start_snapshot::StartSnapshotError> {
          10  +
    /* RustType.kt:516 */
    8     11   
    #[allow(unused_mut)]
          12  +
    /* ProtocolParserGenerator.kt:106 */
    9     13   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   10     14   
        .map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:122 */
   12     18   
    let error_code = match generic.code() {
   13     19   
        Some(code) => code,
   14     20   
        None => return Err(crate::operation::start_snapshot::StartSnapshotError::unhandled(generic)),
   15     21   
    };
   16     22   
   17     23   
    let _error_message = generic.message().map(|msg| msg.to_owned());
          24  +
    /* ProtocolParserGenerator.kt:133 */
   18     25   
    Err(match error_code {
          26  +
        /* ProtocolParserGenerator.kt:139 */
   19     27   
        "AccessDeniedException" => crate::operation::start_snapshot::StartSnapshotError::AccessDeniedError({
          28  +
            /* RustType.kt:516 */
   20     29   
            #[allow(unused_mut)]
   21         -
            let mut tmp = {
   22         -
                #[allow(unused_mut)]
   23         -
                let mut output = crate::types::error::builders::AccessDeniedErrorBuilder::default();
   24         -
                output = crate::protocol_serde::shape_access_denied_exception::de_access_denied_exception_json_err(_response_body, output)
   25         -
                    .map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
   26         -
                let output = output.meta(generic);
   27         -
                crate::serde_util::access_denied_exception_correct_errors(output)
   28         -
                    .build()
   29         -
                    .map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?
   30         -
            };
          30  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          31  +
                /* ProtocolParserGenerator.kt:146 */ {
          32  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          33  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::AccessDeniedErrorBuilder::default();
          34  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_access_denied_exception::de_access_denied_exception_json_err(_response_body, output).map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
          35  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          36  +
                    /* ClientBuilderInstantiator.kt:46 */crate::serde_util::access_denied_exception_correct_errors(output).build().map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?
          37  +
                /* ProtocolParserGenerator.kt:146 */}
          38  +
            /* ProtocolParserGenerator.kt:145 */;
          39  +
            /* ProtocolParserGenerator.kt:170 */
   31     40   
            if tmp.message.is_none() {
   32     41   
                tmp.message = _error_message;
   33     42   
            }
          43  +
            /* ProtocolParserGenerator.kt:179 */
   34     44   
            tmp
          45  +
            /* ProtocolParserGenerator.kt:139 */
   35     46   
        }),
          47  +
        /* ProtocolParserGenerator.kt:139 */
   36     48   
        "ConcurrentLimitExceededException" => crate::operation::start_snapshot::StartSnapshotError::ConcurrentLimitExceededError({
          49  +
            /* RustType.kt:516 */
   37     50   
            #[allow(unused_mut)]
   38         -
            let mut tmp = {
   39         -
                #[allow(unused_mut)]
   40         -
                let mut output = crate::types::error::builders::ConcurrentLimitExceededErrorBuilder::default();
   41         -
                output = crate::protocol_serde::shape_concurrent_limit_exceeded_exception::de_concurrent_limit_exceeded_exception_json_err(
   42         -
                    _response_body,
   43         -
                    output,
   44         -
                )
   45         -
                .map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
   46         -
                let output = output.meta(generic);
   47         -
                output.build()
   48         -
            };
          51  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          52  +
                /* ProtocolParserGenerator.kt:146 */ {
          53  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          54  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ConcurrentLimitExceededErrorBuilder::default();
          55  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_concurrent_limit_exceeded_exception::de_concurrent_limit_exceeded_exception_json_err(_response_body, output).map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
          56  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          57  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          58  +
                /* ProtocolParserGenerator.kt:146 */}
          59  +
            /* ProtocolParserGenerator.kt:145 */;
          60  +
            /* ProtocolParserGenerator.kt:170 */
   49     61   
            if tmp.message.is_none() {
   50     62   
                tmp.message = _error_message;
   51     63   
            }
          64  +
            /* ProtocolParserGenerator.kt:179 */
   52     65   
            tmp
          66  +
            /* ProtocolParserGenerator.kt:139 */
   53     67   
        }),
          68  +
        /* ProtocolParserGenerator.kt:139 */
   54     69   
        "ConflictException" => crate::operation::start_snapshot::StartSnapshotError::ConflictError({
          70  +
            /* RustType.kt:516 */
   55     71   
            #[allow(unused_mut)]
   56         -
            let mut tmp = {
   57         -
                #[allow(unused_mut)]
   58         -
                let mut output = crate::types::error::builders::ConflictErrorBuilder::default();
   59         -
                output = crate::protocol_serde::shape_conflict_exception::de_conflict_exception_json_err(_response_body, output)
   60         -
                    .map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
   61         -
                let output = output.meta(generic);
   62         -
                output.build()
   63         -
            };
          72  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          73  +
                /* ProtocolParserGenerator.kt:146 */ {
          74  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          75  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ConflictErrorBuilder::default();
          76  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_conflict_exception::de_conflict_exception_json_err(_response_body, output).map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
          77  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          78  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
          79  +
                /* ProtocolParserGenerator.kt:146 */}
          80  +
            /* ProtocolParserGenerator.kt:145 */;
          81  +
            /* ProtocolParserGenerator.kt:170 */
   64     82   
            if tmp.message.is_none() {
   65     83   
                tmp.message = _error_message;
   66     84   
            }
          85  +
            /* ProtocolParserGenerator.kt:179 */
   67     86   
            tmp
          87  +
            /* ProtocolParserGenerator.kt:139 */
   68     88   
        }),
          89  +
        /* ProtocolParserGenerator.kt:139 */
   69     90   
        "InternalServerException" => crate::operation::start_snapshot::StartSnapshotError::InternalServerError({
          91  +
            /* RustType.kt:516 */
   70     92   
            #[allow(unused_mut)]
   71         -
            let mut tmp = {
   72         -
                #[allow(unused_mut)]
   73         -
                let mut output = crate::types::error::builders::InternalServerErrorBuilder::default();
   74         -
                output = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(_response_body, output)
   75         -
                    .map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
   76         -
                let output = output.meta(generic);
   77         -
                output.build()
   78         -
            };
          93  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
          94  +
                /* ProtocolParserGenerator.kt:146 */ {
          95  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
          96  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::InternalServerErrorBuilder::default();
          97  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(_response_body, output).map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
          98  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
          99  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
         100  +
                /* ProtocolParserGenerator.kt:146 */}
         101  +
            /* ProtocolParserGenerator.kt:145 */;
         102  +
            /* ProtocolParserGenerator.kt:170 */
   79    103   
            if tmp.message.is_none() {
   80    104   
                tmp.message = _error_message;
   81    105   
            }
         106  +
            /* ProtocolParserGenerator.kt:179 */
   82    107   
            tmp
         108  +
            /* ProtocolParserGenerator.kt:139 */
   83    109   
        }),
         110  +
        /* ProtocolParserGenerator.kt:139 */
   84    111   
        "RequestThrottledException" => crate::operation::start_snapshot::StartSnapshotError::RequestThrottledError({
         112  +
            /* RustType.kt:516 */
   85    113   
            #[allow(unused_mut)]
   86         -
            let mut tmp = {
   87         -
                #[allow(unused_mut)]
   88         -
                let mut output = crate::types::error::builders::RequestThrottledErrorBuilder::default();
   89         -
                output = crate::protocol_serde::shape_request_throttled_exception::de_request_throttled_exception_json_err(_response_body, output)
   90         -
                    .map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
   91         -
                let output = output.meta(generic);
   92         -
                output.build()
   93         -
            };
         114  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
         115  +
                /* ProtocolParserGenerator.kt:146 */ {
         116  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
         117  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::RequestThrottledErrorBuilder::default();
         118  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_request_throttled_exception::de_request_throttled_exception_json_err(_response_body, output).map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
         119  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
         120  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
         121  +
                /* ProtocolParserGenerator.kt:146 */}
         122  +
            /* ProtocolParserGenerator.kt:145 */;
         123  +
            /* ProtocolParserGenerator.kt:170 */
   94    124   
            if tmp.message.is_none() {
   95    125   
                tmp.message = _error_message;
   96    126   
            }
         127  +
            /* ProtocolParserGenerator.kt:179 */
   97    128   
            tmp
         129  +
            /* ProtocolParserGenerator.kt:139 */
   98    130   
        }),
         131  +
        /* ProtocolParserGenerator.kt:139 */
   99    132   
        "ResourceNotFoundException" => crate::operation::start_snapshot::StartSnapshotError::ResourceNotFoundError({
         133  +
            /* RustType.kt:516 */
  100    134   
            #[allow(unused_mut)]
  101         -
            let mut tmp = {
  102         -
                #[allow(unused_mut)]
  103         -
                let mut output = crate::types::error::builders::ResourceNotFoundErrorBuilder::default();
  104         -
                output = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(_response_body, output)
  105         -
                    .map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
  106         -
                let output = output.meta(generic);
  107         -
                output.build()
  108         -
            };
         135  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
         136  +
                /* ProtocolParserGenerator.kt:146 */ {
         137  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
         138  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ResourceNotFoundErrorBuilder::default();
         139  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(_response_body, output).map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
         140  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
         141  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
         142  +
                /* ProtocolParserGenerator.kt:146 */}
         143  +
            /* ProtocolParserGenerator.kt:145 */;
         144  +
            /* ProtocolParserGenerator.kt:170 */
  109    145   
            if tmp.message.is_none() {
  110    146   
                tmp.message = _error_message;
  111    147   
            }
         148  +
            /* ProtocolParserGenerator.kt:179 */
  112    149   
            tmp
         150  +
            /* ProtocolParserGenerator.kt:139 */
  113    151   
        }),
         152  +
        /* ProtocolParserGenerator.kt:139 */
  114    153   
        "ServiceQuotaExceededException" => crate::operation::start_snapshot::StartSnapshotError::ServiceQuotaExceededError({
         154  +
            /* RustType.kt:516 */
  115    155   
            #[allow(unused_mut)]
  116         -
            let mut tmp = {
  117         -
                #[allow(unused_mut)]
  118         -
                let mut output = crate::types::error::builders::ServiceQuotaExceededErrorBuilder::default();
  119         -
                output = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(
  120         -
                    _response_body,
  121         -
                    output,
  122         -
                )
  123         -
                .map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
  124         -
                let output = output.meta(generic);
  125         -
                output.build()
  126         -
            };
         156  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
         157  +
                /* ProtocolParserGenerator.kt:146 */ {
         158  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
         159  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ServiceQuotaExceededErrorBuilder::default();
         160  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(_response_body, output).map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
         161  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
         162  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
         163  +
                /* ProtocolParserGenerator.kt:146 */}
         164  +
            /* ProtocolParserGenerator.kt:145 */;
         165  +
            /* ProtocolParserGenerator.kt:170 */
  127    166   
            if tmp.message.is_none() {
  128    167   
                tmp.message = _error_message;
  129    168   
            }
         169  +
            /* ProtocolParserGenerator.kt:179 */
  130    170   
            tmp
         171  +
            /* ProtocolParserGenerator.kt:139 */
  131    172   
        }),
         173  +
        /* ProtocolParserGenerator.kt:139 */
  132    174   
        "ValidationException" => crate::operation::start_snapshot::StartSnapshotError::ValidationError({
         175  +
            /* RustType.kt:516 */
  133    176   
            #[allow(unused_mut)]
  134         -
            let mut tmp = {
  135         -
                #[allow(unused_mut)]
  136         -
                let mut output = crate::types::error::builders::ValidationErrorBuilder::default();
  137         -
                output = crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(_response_body, output)
  138         -
                    .map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
  139         -
                let output = output.meta(generic);
  140         -
                output.build()
  141         -
            };
         177  +
            /* ProtocolParserGenerator.kt:145 */let mut tmp =
         178  +
                /* ProtocolParserGenerator.kt:146 */ {
         179  +
                    /* RustType.kt:516 */#[allow(unused_mut)]
         180  +
                    /* ProtocolParserGenerator.kt:240 */let mut output = crate::types::error::builders::ValidationErrorBuilder::default();
         181  +
                    /* ProtocolParserGenerator.kt:257 */output = crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(_response_body, output).map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
         182  +
                    /* ProtocolParserGenerator.kt:157 */let output = output.meta(generic);
         183  +
                    /* ClientBuilderInstantiator.kt:56 */output.build()
         184  +
                /* ProtocolParserGenerator.kt:146 */}
         185  +
            /* ProtocolParserGenerator.kt:145 */;
         186  +
            /* ProtocolParserGenerator.kt:170 */
  142    187   
            if tmp.message.is_none() {
  143    188   
                tmp.message = _error_message;
  144    189   
            }
         190  +
            /* ProtocolParserGenerator.kt:179 */
  145    191   
            tmp
         192  +
            /* ProtocolParserGenerator.kt:139 */
  146    193   
        }),
  147         -
        _ => crate::operation::start_snapshot::StartSnapshotError::generic(generic),
         194  +
        /* ProtocolParserGenerator.kt:182 */
         195  +
        _ => crate::operation::start_snapshot::StartSnapshotError::generic(generic), /* ProtocolParserGenerator.kt:133 */
  148    196   
    })
         197  +
    /* ProtocolParserGenerator.kt:99 */
  149    198   
}
  150    199   
         200  +
/* RustType.kt:516 */
  151    201   
#[allow(clippy::unnecessary_wraps)]
         202  +
/* ProtocolParserGenerator.kt:71 */
  152    203   
pub fn de_start_snapshot_http_response(
  153    204   
    _response_status: u16,
  154    205   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
  155    206   
    _response_body: &[u8],
  156    207   
) -> std::result::Result<crate::operation::start_snapshot::StartSnapshotOutput, crate::operation::start_snapshot::StartSnapshotError> {
         208  +
    /* ProtocolParserGenerator.kt:77 */
  157    209   
    Ok({
         210  +
        /* RustType.kt:516 */
  158    211   
        #[allow(unused_mut)]
         212  +
        /* ProtocolParserGenerator.kt:240 */
  159    213   
        let mut output = crate::operation::start_snapshot::builders::StartSnapshotOutputBuilder::default();
         214  +
        /* ProtocolParserGenerator.kt:247 */
  160    215   
        output = crate::protocol_serde::shape_start_snapshot::de_start_snapshot(_response_body, output)
  161    216   
            .map_err(crate::operation::start_snapshot::StartSnapshotError::unhandled)?;
         217  +
        /* ClientBuilderInstantiator.kt:56 */
  162    218   
        output.build()
         219  +
        /* ProtocolParserGenerator.kt:77 */
  163    220   
    })
         221  +
    /* ProtocolParserGenerator.kt:71 */
  164    222   
}
  165    223   
         224  +
/* JsonSerializerGenerator.kt:287 */
  166    225   
pub fn ser_start_snapshot_input(
  167    226   
    input: &crate::operation::start_snapshot::StartSnapshotInput,
  168    227   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
         228  +
    /* JsonSerializerGenerator.kt:291 */
  169    229   
    let mut out = String::new();
         230  +
    /* JsonSerializerGenerator.kt:292 */
  170    231   
    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
         232  +
    /* JsonSerializerGenerator.kt:375 */
  171    233   
    crate::protocol_serde::shape_start_snapshot_input::ser_start_snapshot_input_input(&mut object, input)?;
         234  +
    /* JsonSerializerGenerator.kt:295 */
  172    235   
    object.finish();
         236  +
    /* JsonSerializerGenerator.kt:296 */
  173    237   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
         238  +
    /* JsonSerializerGenerator.kt:287 */
  174    239   
}
  175    240   
         241  +
/* JsonParserGenerator.kt:148 */
  176    242   
pub(crate) fn de_start_snapshot(
  177    243   
    value: &[u8],
  178    244   
    mut builder: crate::operation::start_snapshot::builders::StartSnapshotOutputBuilder,
  179    245   
) -> ::std::result::Result<
  180    246   
    crate::operation::start_snapshot::builders::StartSnapshotOutputBuilder,
  181    247   
    ::aws_smithy_json::deserialize::error::DeserializeError,
  182    248   
> {
         249  +
    /* JsonParserGenerator.kt:153 */
  183    250   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
  184    251   
    let tokens = &mut tokens_owned;
  185    252   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
         253  +
    /* JsonParserGenerator.kt:684 */
  186    254   
    loop {
         255  +
        /* JsonParserGenerator.kt:685 */
  187    256   
        match tokens.next().transpose()? {
  188         -
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
  189         -
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
         257  +
            /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
         258  +
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
         259  +
                /* JsonParserGenerator.kt:260 */
         260  +
                match key.to_unescaped()?.as_ref() {
         261  +
                    /* JsonParserGenerator.kt:262 */
  190    262   
                    "BlockSize" => {
         263  +
                        /* JsonParserGenerator.kt:265 */
  191    264   
                        builder = builder.set_block_size(
         265  +
                            /* JsonParserGenerator.kt:365 */
  192    266   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  193    267   
                                .map(i32::try_from)
  194         -
                            .transpose()?,
         268  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  195    269   
                        );
         270  +
                        /* JsonParserGenerator.kt:262 */
  196    271   
                    }
         272  +
                    /* JsonParserGenerator.kt:262 */
  197    273   
                    "Description" => {
         274  +
                        /* JsonParserGenerator.kt:265 */
  198    275   
                        builder = builder.set_description(
         276  +
                            /* JsonParserGenerator.kt:354 */
  199    277   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  200         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
  201         -
                            .transpose()?,
         278  +
                                .map(|s|
         279  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         280  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
         281  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         282  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  202    283   
                        );
         284  +
                        /* JsonParserGenerator.kt:262 */
  203    285   
                    }
         286  +
                    /* JsonParserGenerator.kt:262 */
  204    287   
                    "KmsKeyArn" => {
         288  +
                        /* JsonParserGenerator.kt:265 */
  205    289   
                        builder = builder.set_kms_key_arn(
         290  +
                            /* JsonParserGenerator.kt:354 */
  206    291   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  207         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
  208         -
                            .transpose()?,
         292  +
                                .map(|s|
         293  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         294  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
         295  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         296  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  209    297   
                        );
         298  +
                        /* JsonParserGenerator.kt:262 */
  210    299   
                    }
         300  +
                    /* JsonParserGenerator.kt:262 */
  211    301   
                    "OwnerId" => {
         302  +
                        /* JsonParserGenerator.kt:265 */
  212    303   
                        builder = builder.set_owner_id(
         304  +
                            /* JsonParserGenerator.kt:354 */
  213    305   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  214         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
  215         -
                            .transpose()?,
         306  +
                                .map(|s|
         307  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         308  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
         309  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         310  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  216    311   
                        );
         312  +
                        /* JsonParserGenerator.kt:262 */
  217    313   
                    }
         314  +
                    /* JsonParserGenerator.kt:262 */
  218    315   
                    "ParentSnapshotId" => {
         316  +
                        /* JsonParserGenerator.kt:265 */
  219    317   
                        builder = builder.set_parent_snapshot_id(
         318  +
                            /* JsonParserGenerator.kt:354 */
  220    319   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  221         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
  222         -
                            .transpose()?,
         320  +
                                .map(|s|
         321  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         322  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
         323  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         324  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  223    325   
                        );
         326  +
                        /* JsonParserGenerator.kt:262 */
  224    327   
                    }
         328  +
                    /* JsonParserGenerator.kt:262 */
  225    329   
                    "SnapshotId" => {
         330  +
                        /* JsonParserGenerator.kt:265 */
  226    331   
                        builder = builder.set_snapshot_id(
         332  +
                            /* JsonParserGenerator.kt:354 */
  227    333   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  228         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
  229         -
                            .transpose()?,
         334  +
                                .map(|s|
         335  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         336  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
         337  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         338  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  230    339   
                        );
         340  +
                        /* JsonParserGenerator.kt:262 */
  231    341   
                    }
         342  +
                    /* JsonParserGenerator.kt:262 */
  232    343   
                    "StartTime" => {
  233         -
                    builder = builder.set_start_time(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
         344  +
                        /* JsonParserGenerator.kt:265 */
         345  +
                        builder = builder.set_start_time(
         346  +
                            /* JsonParserGenerator.kt:384 */
         347  +
                            ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
  234    348   
                                tokens.next(),
  235    349   
                                ::aws_smithy_types::date_time::Format::EpochSeconds,
  236         -
                    )?);
         350  +
                            )?, /* JsonParserGenerator.kt:265 */
         351  +
                        );
         352  +
                        /* JsonParserGenerator.kt:262 */
  237    353   
                    }
         354  +
                    /* JsonParserGenerator.kt:262 */
  238    355   
                    "Status" => {
         356  +
                        /* JsonParserGenerator.kt:265 */
  239    357   
                        builder = builder.set_status(
         358  +
                            /* JsonParserGenerator.kt:354 */
  240    359   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  241         -
                            .map(|s| s.to_unescaped().map(|u| crate::types::Status::from(u.as_ref())))
  242         -
                            .transpose()?,
         360  +
                                .map(|s|
         361  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         362  +
                                    /* JsonParserGenerator.kt:345 */crate::types::Status::from(u.as_ref())
         363  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
         364  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  243    365   
                        );
         366  +
                        /* JsonParserGenerator.kt:262 */
  244    367   
                    }
         368  +
                    /* JsonParserGenerator.kt:262 */
  245    369   
                    "Tags" => {
  246         -
                    builder = builder.set_tags(crate::protocol_serde::shape_tags::de_tags(tokens)?);
         370  +
                        /* JsonParserGenerator.kt:265 */
         371  +
                        builder = builder.set_tags(
         372  +
                            /* JsonParserGenerator.kt:451 */
         373  +
                            crate::protocol_serde::shape_tags::de_tags(tokens)?, /* JsonParserGenerator.kt:265 */
         374  +
                        );
         375  +
                        /* JsonParserGenerator.kt:262 */
  247    376   
                    }
         377  +
                    /* JsonParserGenerator.kt:262 */
  248    378   
                    "VolumeSize" => {
         379  +
                        /* JsonParserGenerator.kt:265 */
  249    380   
                        builder = builder.set_volume_size(
         381  +
                            /* JsonParserGenerator.kt:365 */
  250    382   
                            ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
  251    383   
                                .map(i64::try_from)
  252         -
                            .transpose()?,
         384  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
  253    385   
                        );
         386  +
                        /* JsonParserGenerator.kt:262 */
         387  +
                    }
         388  +
                    /* JsonParserGenerator.kt:290 */
         389  +
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
  254    390   
                }
  255         -
                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
  256         -
            },
         391  +
                /* JsonParserGenerator.kt:686 */
         392  +
            }
         393  +
            /* JsonParserGenerator.kt:695 */
  257    394   
            other => {
  258    395   
                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  259    396   
                    "expected object key or end object, found: {:?}",
  260    397   
                    other
  261    398   
                )))
         399  +
            } /* JsonParserGenerator.kt:685 */
  262    400   
        }
         401  +
        /* JsonParserGenerator.kt:684 */
  263    402   
    }
  264         -
    }
         403  +
    /* JsonParserGenerator.kt:250 */
  265    404   
    if tokens.next().is_some() {
         405  +
        /* JsonParserGenerator.kt:251 */
  266    406   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
  267    407   
            "found more JSON tokens after completing parsing",
  268    408   
        ));
         409  +
        /* JsonParserGenerator.kt:250 */
  269    410   
    }
         411  +
    /* JsonParserGenerator.kt:163 */
  270    412   
    Ok(builder)
         413  +
    /* JsonParserGenerator.kt:148 */
  271    414   
}

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/protocol_serde/shape_start_snapshot_input.rs

@@ -1,1 +46,82 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
    2      3   
pub fn ser_start_snapshot_input_input(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::operation::start_snapshot::StartSnapshotInput,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.client_token {
           9  +
        /* JsonSerializerGenerator.kt:423 */
    7     10   
        object.key("ClientToken").string(var_1.as_str());
          11  +
        /* JsonSerializerGenerator.kt:382 */
    8     12   
    }
          13  +
    /* JsonSerializerGenerator.kt:382 */
    9     14   
    if let Some(var_2) = &input.description {
          15  +
        /* JsonSerializerGenerator.kt:423 */
   10     16   
        object.key("Description").string(var_2.as_str());
          17  +
        /* JsonSerializerGenerator.kt:382 */
   11     18   
    }
          19  +
    /* JsonSerializerGenerator.kt:382 */
   12     20   
    if let Some(var_3) = &input.encrypted {
          21  +
        /* JsonSerializerGenerator.kt:424 */
   13     22   
        object.key("Encrypted").boolean(*var_3);
          23  +
        /* JsonSerializerGenerator.kt:382 */
   14     24   
    }
          25  +
    /* JsonSerializerGenerator.kt:382 */
   15     26   
    if let Some(var_4) = &input.kms_key_arn {
          27  +
        /* JsonSerializerGenerator.kt:423 */
   16     28   
        object.key("KmsKeyArn").string(var_4.as_str());
          29  +
        /* JsonSerializerGenerator.kt:382 */
   17     30   
    }
          31  +
    /* JsonSerializerGenerator.kt:382 */
   18     32   
    if let Some(var_5) = &input.parent_snapshot_id {
          33  +
        /* JsonSerializerGenerator.kt:423 */
   19     34   
        object.key("ParentSnapshotId").string(var_5.as_str());
          35  +
        /* JsonSerializerGenerator.kt:382 */
   20     36   
    }
          37  +
    /* JsonSerializerGenerator.kt:382 */
   21     38   
    if let Some(var_6) = &input.tags {
          39  +
        /* JsonSerializerGenerator.kt:484 */
   22     40   
        let mut array_7 = object.key("Tags").start_array();
          41  +
        /* JsonSerializerGenerator.kt:524 */
   23     42   
        for item_8 in var_6 {
          43  +
            /* SerializerUtil.kt:42 */
   24     44   
            {
          45  +
                /* JsonSerializerGenerator.kt:495 */
   25     46   
                #[allow(unused_mut)]
          47  +
                /* JsonSerializerGenerator.kt:496 */
   26     48   
                let mut object_9 = array_7.value().start_object();
          49  +
                /* JsonSerializerGenerator.kt:375 */
   27     50   
                crate::protocol_serde::shape_tag::ser_tag(&mut object_9, item_8)?;
          51  +
                /* JsonSerializerGenerator.kt:515 */
   28     52   
                object_9.finish();
          53  +
                /* SerializerUtil.kt:42 */
   29     54   
            }
          55  +
            /* JsonSerializerGenerator.kt:524 */
   30     56   
        }
          57  +
        /* JsonSerializerGenerator.kt:486 */
   31     58   
        array_7.finish();
          59  +
        /* JsonSerializerGenerator.kt:382 */
   32     60   
    }
          61  +
    /* JsonSerializerGenerator.kt:382 */
   33     62   
    if let Some(var_10) = &input.timeout {
          63  +
        /* JsonSerializerGenerator.kt:432 */
   34     64   
        object.key("Timeout").number(
   35     65   
            #[allow(clippy::useless_conversion)]
   36     66   
            ::aws_smithy_types::Number::NegInt((*var_10).into()),
   37     67   
        );
          68  +
        /* JsonSerializerGenerator.kt:382 */
   38     69   
    }
          70  +
    /* JsonSerializerGenerator.kt:382 */
   39     71   
    if let Some(var_11) = &input.volume_size {
          72  +
        /* JsonSerializerGenerator.kt:432 */
   40     73   
        object.key("VolumeSize").number(
   41     74   
            #[allow(clippy::useless_conversion)]
   42     75   
            ::aws_smithy_types::Number::NegInt((*var_11).into()),
   43     76   
        );
          77  +
        /* JsonSerializerGenerator.kt:382 */
   44     78   
    }
          79  +
    /* JsonSerializerGenerator.kt:372 */
   45     80   
    Ok(())
          81  +
    /* JsonSerializerGenerator.kt:358 */
   46     82   
}

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/protocol_serde/shape_tag.rs

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