Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_recursive_shapes_input.rs

@@ -1,1 +14,24 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitSerializerGenerator.kt:427 */
    2      3   
pub fn ser_recursive_shapes_input_input_input(
    3      4   
    input: &crate::operation::recursive_shapes::RecursiveShapesInput,
    4      5   
    writer: ::aws_smithy_xml::encode::ElWriter,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* RustType.kt:516 */
    6      8   
    #[allow(unused_mut)]
           9  +
    /* XmlBindingTraitSerializerGenerator.kt:299 */
    7     10   
    let mut scope = writer.finish();
          11  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
    8     12   
    if let Some(var_1) = &input.nested {
          13  +
        /* XmlBindingTraitSerializerGenerator.kt:399 */
    9     14   
        let inner_writer = scope.start_el("nested");
          15  +
        /* XmlBindingTraitSerializerGenerator.kt:440 */
   10     16   
        crate::protocol_serde::shape_recursive_shapes_input_output_nested1::ser_recursive_shapes_input_output_nested1(var_1, inner_writer)?
          17  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   11     18   
    }
          19  +
    /* XmlBindingTraitSerializerGenerator.kt:304 */
   12     20   
    scope.finish();
          21  +
    /* XmlBindingTraitSerializerGenerator.kt:437 */
   13     22   
    Ok(())
          23  +
    /* XmlBindingTraitSerializerGenerator.kt:427 */
   14     24   
}

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_recursive_shapes_input_output_nested1.rs

@@ -1,1 +57,82 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::needless_question_mark)]
           4  +
/* XmlBindingTraitParserGenerator.kt:510 */
    3      5   
pub fn de_recursive_shapes_input_output_nested1(
    4      6   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
    5      7   
) -> ::std::result::Result<crate::types::RecursiveShapesInputOutputNested1, ::aws_smithy_xml::decode::XmlDecodeError> {
           8  +
    /* RustType.kt:516 */
    6      9   
    #[allow(unused_mut)]
          10  +
    /* XmlBindingTraitParserGenerator.kt:515 */
    7     11   
    let mut builder = crate::types::RecursiveShapesInputOutputNested1::builder();
          12  +
    /* XmlBindingTraitParserGenerator.kt:352 */
    8     13   
    while let Some(mut tag) = decoder.next_tag() {
          14  +
        /* XmlBindingTraitParserGenerator.kt:353 */
    9     15   
        match tag.start_el() {
   10         -
            s if s.matches("foo") /* foo aws.protocoltests.restxml#RecursiveShapesInputOutputNested1$foo */ =>  {
   11         -
                let var_1 =
   12         -
                    Some(
   13         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   14         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   15         -
                            .into()
   16         -
                        )
   17         -
                        ?
   18         -
                    )
   19         -
                ;
   20         -
                builder = builder.set_foo(var_1);
   21         -
            }
          16  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("foo") /* foo aws.protocoltests.restxml#RecursiveShapesInputOutputNested1$foo */ =>  {
          17  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_1 =
          18  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
          19  +
                        /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          20  +
                            /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          21  +
                            /* XmlBindingTraitParserGenerator.kt:748 */.into()
          22  +
                        /* XmlBindingTraitParserGenerator.kt:729 */)
          23  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
          24  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
          25  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
          26  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_foo(var_1);
          27  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   22     28   
            ,
   23         -
            s if s.matches("nested") /* nested aws.protocoltests.restxml#RecursiveShapesInputOutputNested1$nested */ =>  {
   24         -
                let var_2 =
   25         -
                    Some(
   26         -
                        Box::new(
   27         -
                            crate::protocol_serde::shape_recursive_shapes_input_output_nested2::de_recursive_shapes_input_output_nested2(&mut tag)
   28         -
                            ?
   29         -
                        )
   30         -
                    )
   31         -
                ;
   32         -
                builder = builder.set_nested(var_2);
   33         -
            }
          29  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("nested") /* nested aws.protocoltests.restxml#RecursiveShapesInputOutputNested1$nested */ =>  {
          30  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_2 =
          31  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
          32  +
                        /* XmlBindingTraitParserGenerator.kt:373 */Box::new(
          33  +
                            /* XmlBindingTraitParserGenerator.kt:536 */crate::protocol_serde::shape_recursive_shapes_input_output_nested2::de_recursive_shapes_input_output_nested2(&mut tag)
          34  +
                            /* XmlBindingTraitParserGenerator.kt:402 */?
          35  +
                        /* XmlBindingTraitParserGenerator.kt:373 */)
          36  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
          37  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
          38  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_nested(var_2);
          39  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   34     40   
            ,
   35         -
            _ => {}
   36         -
        }
          41  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
          42  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
          43  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   37     44   
    }
          45  +
    /* XmlBindingTraitParserGenerator.kt:533 */
   38     46   
    Ok(builder.build())
          47  +
    /* XmlBindingTraitParserGenerator.kt:510 */
   39     48   
}
   40     49   
          50  +
/* XmlBindingTraitSerializerGenerator.kt:427 */
   41     51   
pub fn ser_recursive_shapes_input_output_nested1(
   42     52   
    input: &crate::types::RecursiveShapesInputOutputNested1,
   43     53   
    writer: ::aws_smithy_xml::encode::ElWriter,
   44     54   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
          55  +
    /* RustType.kt:516 */
   45     56   
    #[allow(unused_mut)]
          57  +
    /* XmlBindingTraitSerializerGenerator.kt:299 */
   46     58   
    let mut scope = writer.finish();
          59  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   47     60   
    if let Some(var_3) = &input.foo {
          61  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   48     62   
        let mut inner_writer = scope.start_el("foo").finish();
   49         -
        inner_writer.data(var_3.as_str());
          63  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          64  +
        inner_writer.data(
          65  +
            /* XmlBindingTraitSerializerGenerator.kt:321 */ var_3.as_str(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          66  +
        );
          67  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   50     68   
    }
          69  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   51     70   
    if let Some(var_4) = &input.nested {
          71  +
        /* XmlBindingTraitSerializerGenerator.kt:399 */
   52     72   
        let inner_writer = scope.start_el("nested");
          73  +
        /* XmlBindingTraitSerializerGenerator.kt:440 */
   53     74   
        crate::protocol_serde::shape_recursive_shapes_input_output_nested2::ser_recursive_shapes_input_output_nested2(var_4, inner_writer)?
          75  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   54     76   
    }
          77  +
    /* XmlBindingTraitSerializerGenerator.kt:304 */
   55     78   
    scope.finish();
          79  +
    /* XmlBindingTraitSerializerGenerator.kt:437 */
   56     80   
    Ok(())
          81  +
    /* XmlBindingTraitSerializerGenerator.kt:427 */
   57     82   
}

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_recursive_shapes_input_output_nested2.rs

@@ -1,1 +55,80 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::needless_question_mark)]
           4  +
/* XmlBindingTraitParserGenerator.kt:510 */
    3      5   
pub fn de_recursive_shapes_input_output_nested2(
    4      6   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
    5      7   
) -> ::std::result::Result<crate::types::RecursiveShapesInputOutputNested2, ::aws_smithy_xml::decode::XmlDecodeError> {
           8  +
    /* RustType.kt:516 */
    6      9   
    #[allow(unused_mut)]
          10  +
    /* XmlBindingTraitParserGenerator.kt:515 */
    7     11   
    let mut builder = crate::types::RecursiveShapesInputOutputNested2::builder();
          12  +
    /* XmlBindingTraitParserGenerator.kt:352 */
    8     13   
    while let Some(mut tag) = decoder.next_tag() {
          14  +
        /* XmlBindingTraitParserGenerator.kt:353 */
    9     15   
        match tag.start_el() {
   10         -
            s if s.matches("bar") /* bar aws.protocoltests.restxml#RecursiveShapesInputOutputNested2$bar */ =>  {
   11         -
                let var_1 =
   12         -
                    Some(
   13         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   14         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   15         -
                            .into()
   16         -
                        )
   17         -
                        ?
   18         -
                    )
   19         -
                ;
   20         -
                builder = builder.set_bar(var_1);
   21         -
            }
          16  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("bar") /* bar aws.protocoltests.restxml#RecursiveShapesInputOutputNested2$bar */ =>  {
          17  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_1 =
          18  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
          19  +
                        /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          20  +
                            /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          21  +
                            /* XmlBindingTraitParserGenerator.kt:748 */.into()
          22  +
                        /* XmlBindingTraitParserGenerator.kt:729 */)
          23  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
          24  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
          25  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
          26  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_bar(var_1);
          27  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   22     28   
            ,
   23         -
            s if s.matches("recursiveMember") /* recursiveMember aws.protocoltests.restxml#RecursiveShapesInputOutputNested2$recursiveMember */ =>  {
   24         -
                let var_2 =
   25         -
                    Some(
   26         -
                        crate::protocol_serde::shape_recursive_shapes_input_output_nested1::de_recursive_shapes_input_output_nested1(&mut tag)
   27         -
                        ?
   28         -
                    )
   29         -
                ;
   30         -
                builder = builder.set_recursive_member(var_2);
   31         -
            }
          29  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("recursiveMember") /* recursiveMember aws.protocoltests.restxml#RecursiveShapesInputOutputNested2$recursiveMember */ =>  {
          30  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_2 =
          31  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
          32  +
                        /* XmlBindingTraitParserGenerator.kt:536 */crate::protocol_serde::shape_recursive_shapes_input_output_nested1::de_recursive_shapes_input_output_nested1(&mut tag)
          33  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
          34  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
          35  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
          36  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_recursive_member(var_2);
          37  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   32     38   
            ,
   33         -
            _ => {}
   34         -
        }
          39  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
          40  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
          41  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   35     42   
    }
          43  +
    /* XmlBindingTraitParserGenerator.kt:533 */
   36     44   
    Ok(builder.build())
          45  +
    /* XmlBindingTraitParserGenerator.kt:510 */
   37     46   
}
   38     47   
          48  +
/* XmlBindingTraitSerializerGenerator.kt:427 */
   39     49   
pub fn ser_recursive_shapes_input_output_nested2(
   40     50   
    input: &crate::types::RecursiveShapesInputOutputNested2,
   41     51   
    writer: ::aws_smithy_xml::encode::ElWriter,
   42     52   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
          53  +
    /* RustType.kt:516 */
   43     54   
    #[allow(unused_mut)]
          55  +
    /* XmlBindingTraitSerializerGenerator.kt:299 */
   44     56   
    let mut scope = writer.finish();
          57  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   45     58   
    if let Some(var_3) = &input.bar {
          59  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   46     60   
        let mut inner_writer = scope.start_el("bar").finish();
   47         -
        inner_writer.data(var_3.as_str());
          61  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          62  +
        inner_writer.data(
          63  +
            /* XmlBindingTraitSerializerGenerator.kt:321 */ var_3.as_str(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          64  +
        );
          65  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   48     66   
    }
          67  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   49     68   
    if let Some(var_4) = &input.recursive_member {
          69  +
        /* XmlBindingTraitSerializerGenerator.kt:399 */
   50     70   
        let inner_writer = scope.start_el("recursiveMember");
          71  +
        /* XmlBindingTraitSerializerGenerator.kt:440 */
   51     72   
        crate::protocol_serde::shape_recursive_shapes_input_output_nested1::ser_recursive_shapes_input_output_nested1(var_4, inner_writer)?
          73  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   52     74   
    }
          75  +
    /* XmlBindingTraitSerializerGenerator.kt:304 */
   53     76   
    scope.finish();
          77  +
    /* XmlBindingTraitSerializerGenerator.kt:437 */
   54     78   
    Ok(())
          79  +
    /* XmlBindingTraitSerializerGenerator.kt:427 */
   55     80   
}

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_renamed_list_members.rs

@@ -1,1 +22,29 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitParserGenerator.kt:546 */
    2      3   
pub fn de_renamed_list_members(
    3      4   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
    4      5   
) -> ::std::result::Result<::std::vec::Vec<::std::string::String>, ::aws_smithy_xml::decode::XmlDecodeError> {
           6  +
    /* XmlBindingTraitParserGenerator.kt:551 */
    5      7   
    let mut out = std::vec::Vec::new();
           8  +
    /* XmlBindingTraitParserGenerator.kt:352 */
    6      9   
    while let Some(mut tag) = decoder.next_tag() {
          10  +
        /* XmlBindingTraitParserGenerator.kt:353 */
    7     11   
        match tag.start_el() {
    8         -
            s if s.matches("item") /* member aws.protocoltests.restxml#RenamedListMembers$member */ =>  {
    9         -
                out.push(
   10         -
                    Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   11         -
                        ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   12         -
                        .into()
   13         -
                    )
   14         -
                    ?
   15         -
                );
   16         -
            }
          12  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("item") /* member aws.protocoltests.restxml#RenamedListMembers$member */ =>  {
          13  +
                /* XmlBindingTraitParserGenerator.kt:554 */out.push(
          14  +
                    /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          15  +
                        /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          16  +
                        /* XmlBindingTraitParserGenerator.kt:748 */.into()
          17  +
                    /* XmlBindingTraitParserGenerator.kt:729 */)
          18  +
                    /* XmlBindingTraitParserGenerator.kt:402 */?
          19  +
                /* XmlBindingTraitParserGenerator.kt:554 */);
          20  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   17     21   
            ,
   18         -
            _ => {}
   19         -
        }
          22  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
          23  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
          24  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   20     25   
    }
          26  +
    /* XmlBindingTraitParserGenerator.kt:559 */
   21     27   
    Ok(out)
          28  +
    /* XmlBindingTraitParserGenerator.kt:546 */
   22     29   
}

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

@@ -1,1 +231,273 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::unnecessary_wraps)]
           4  +
/* ProtocolParserGenerator.kt:99 */
    3      5   
pub fn de_simple_scalar_properties_http_error(
    4      6   
    _response_status: u16,
    5      7   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
    6      8   
    _response_body: &[u8],
    7      9   
) -> std::result::Result<
    8     10   
    crate::operation::simple_scalar_properties::SimpleScalarPropertiesOutput,
    9     11   
    crate::operation::simple_scalar_properties::SimpleScalarPropertiesError,
   10     12   
> {
          13  +
    /* RustType.kt:516 */
   11     14   
    #[allow(unused_mut)]
          15  +
    /* ProtocolParserGenerator.kt:106 */
   12     16   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   13     17   
        .map_err(crate::operation::simple_scalar_properties::SimpleScalarPropertiesError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:185 */
   15     21   
    Err(crate::operation::simple_scalar_properties::SimpleScalarPropertiesError::generic(generic))
          22  +
    /* ProtocolParserGenerator.kt:99 */
   16     23   
}
   17     24   
          25  +
/* RustType.kt:516 */
   18     26   
#[allow(clippy::unnecessary_wraps)]
          27  +
/* ProtocolParserGenerator.kt:71 */
   19     28   
pub fn de_simple_scalar_properties_http_response(
   20     29   
    _response_status: u16,
   21     30   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   22     31   
    _response_body: &[u8],
   23     32   
) -> std::result::Result<
   24     33   
    crate::operation::simple_scalar_properties::SimpleScalarPropertiesOutput,
   25     34   
    crate::operation::simple_scalar_properties::SimpleScalarPropertiesError,
   26     35   
> {
          36  +
    /* ProtocolParserGenerator.kt:77 */
   27     37   
    Ok({
          38  +
        /* RustType.kt:516 */
   28     39   
        #[allow(unused_mut)]
          40  +
        /* ProtocolParserGenerator.kt:240 */
   29     41   
        let mut output = crate::operation::simple_scalar_properties::builders::SimpleScalarPropertiesOutputBuilder::default();
          42  +
        /* ProtocolParserGenerator.kt:247 */
   30     43   
        output = crate::protocol_serde::shape_simple_scalar_properties::de_simple_scalar_properties(_response_body, output)
   31     44   
            .map_err(crate::operation::simple_scalar_properties::SimpleScalarPropertiesError::unhandled)?;
          45  +
        /* ProtocolParserGenerator.kt:267 */
   32     46   
        output = output.set_foo(
          47  +
            /* ProtocolParserGenerator.kt:302 */
   33     48   
            crate::protocol_serde::shape_simple_scalar_properties_output::de_foo_header(_response_headers).map_err(|_| {
   34     49   
                crate::operation::simple_scalar_properties::SimpleScalarPropertiesError::unhandled("Failed to parse foo from header `X-Foo")
   35         -
            })?,
          50  +
            })?, /* ProtocolParserGenerator.kt:267 */
   36     51   
        );
          52  +
        /* ClientBuilderInstantiator.kt:56 */
   37     53   
        output.build()
          54  +
        /* ProtocolParserGenerator.kt:77 */
   38     55   
    })
          56  +
    /* ProtocolParserGenerator.kt:71 */
   39     57   
}
   40     58   
          59  +
/* HttpBindingGenerator.kt:542 */
   41     60   
pub fn ser_simple_scalar_properties_headers(
   42     61   
    input: &crate::operation::simple_scalar_properties::SimpleScalarPropertiesInput,
   43     62   
    mut builder: ::http::request::Builder,
   44     63   
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
          64  +
    /* HttpBindingGenerator.kt:592 */
   45     65   
    if let ::std::option::Option::Some(inner_1) = &input.foo {
          66  +
        /* HttpBindingGenerator.kt:704 */
   46     67   
        let formatted_2 = inner_1.as_str();
          68  +
        /* HttpBindingGenerator.kt:706 */
   47     69   
        let header_value = formatted_2;
   48     70   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
   49     71   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
   50     72   
                "foo",
   51     73   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
   52     74   
            )
   53     75   
        })?;
   54     76   
        builder = builder.header("X-Foo", header_value);
          77  +
        /* HttpBindingGenerator.kt:592 */
   55     78   
    }
          79  +
    /* HttpBindingGenerator.kt:555 */
   56     80   
    Ok(builder)
          81  +
    /* HttpBindingGenerator.kt:542 */
   57     82   
}
   58     83   
          84  +
/* XmlBindingTraitSerializerGenerator.kt:116 */
   59     85   
pub fn ser_simple_scalar_properties_op_input(
   60     86   
    input: &crate::operation::simple_scalar_properties::SimpleScalarPropertiesInput,
   61     87   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          88  +
    /* XmlBindingTraitSerializerGenerator.kt:120 */
   62     89   
    let mut out = String::new();
          90  +
    /* XmlBindingTraitSerializerGenerator.kt:124 */
   63     91   
    {
          92  +
        /* XmlBindingTraitSerializerGenerator.kt:125 */
   64     93   
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
   65     94   
        #[allow(unused_mut)]
   66     95   
        let mut root = writer.start_el("SimpleScalarPropertiesRequest");
          96  +
        /* XmlBindingTraitSerializerGenerator.kt:440 */
   67     97   
        crate::protocol_serde::shape_simple_scalar_properties_input::ser_simple_scalar_properties_input_input_input(input, root)?
          98  +
        /* XmlBindingTraitSerializerGenerator.kt:124 */
   68     99   
    }
         100  +
    /* XmlBindingTraitSerializerGenerator.kt:137 */
   69    101   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
         102  +
    /* XmlBindingTraitSerializerGenerator.kt:116 */
   70    103   
}
   71    104   
         105  +
/* RustType.kt:516 */
   72    106   
#[allow(unused_mut)]
         107  +
/* XmlBindingTraitParserGenerator.kt:189 */
   73    108   
pub fn de_simple_scalar_properties(
   74    109   
    inp: &[u8],
   75    110   
    mut builder: crate::operation::simple_scalar_properties::builders::SimpleScalarPropertiesOutputBuilder,
   76    111   
) -> std::result::Result<
   77    112   
    crate::operation::simple_scalar_properties::builders::SimpleScalarPropertiesOutputBuilder,
   78    113   
    ::aws_smithy_xml::decode::XmlDecodeError,
   79    114   
> {
         115  +
    /* XmlBindingTraitParserGenerator.kt:194 */
   80    116   
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
   81    117   
   82    118   
    #[allow(unused_mut)]
   83    119   
    let mut decoder = doc.root_element()?;
   84    120   
    #[allow(unused_variables)]
   85    121   
    let start_el = decoder.start_el();
         122  +
    /* RestXmlParserGenerator.kt:36 */
   86    123   
    if !start_el.matches("SimpleScalarPropertiesResponse") {
   87    124   
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
   88    125   
            "encountered invalid XML root: expected SimpleScalarPropertiesResponse but got {:?}. This is likely a bug in the SDK.",
   89    126   
            start_el
   90    127   
        )));
   91    128   
    }
         129  +
    /* XmlBindingTraitParserGenerator.kt:352 */
   92    130   
    while let Some(mut tag) = decoder.next_tag() {
         131  +
        /* XmlBindingTraitParserGenerator.kt:353 */
   93    132   
        match tag.start_el() {
   94         -
            s if s.matches("stringValue") /* stringValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$stringValue */ =>  {
   95         -
                let var_3 =
   96         -
                    Some(
   97         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   98         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   99         -
                            .into()
  100         -
                        )
  101         -
                        ?
  102         -
                    )
  103         -
                ;
  104         -
                builder = builder.set_string_value(var_3);
  105         -
            }
         133  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("stringValue") /* stringValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$stringValue */ =>  {
         134  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_3 =
         135  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         136  +
                        /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
         137  +
                            /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         138  +
                            /* XmlBindingTraitParserGenerator.kt:748 */.into()
         139  +
                        /* XmlBindingTraitParserGenerator.kt:729 */)
         140  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         141  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         142  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         143  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_string_value(var_3);
         144  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
  106    145   
            ,
  107         -
            s if s.matches("floatValue") /* floatValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$floatValue */ =>  {
  108         -
                let var_4 =
  109         -
                    Some(
  110         -
                         {
  111         -
                            <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
  112         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  113         -
                            )
  114         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (float: `smithy.api#Float`)"))
  115         -
                        }
  116         -
                        ?
  117         -
                    )
  118         -
                ;
  119         -
                builder = builder.set_float_value(var_4);
  120         -
            }
         146  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("floatValue") /* floatValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$floatValue */ =>  {
         147  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_4 =
         148  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         149  +
                        /* XmlBindingTraitParserGenerator.kt:676 */ {
         150  +
                            /* XmlBindingTraitParserGenerator.kt:677 */<f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
         151  +
                                /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         152  +
                            /* XmlBindingTraitParserGenerator.kt:677 */)
         153  +
                            /* XmlBindingTraitParserGenerator.kt:685 */.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (float: `smithy.api#Float`)"))
         154  +
                        /* XmlBindingTraitParserGenerator.kt:676 */}
         155  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         156  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         157  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         158  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_float_value(var_4);
         159  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
  121    160   
            ,
  122         -
            s if s.matches("falseBooleanValue") /* falseBooleanValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$falseBooleanValue */ =>  {
  123         -
                let var_5 =
  124         -
                    Some(
  125         -
                         {
  126         -
                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
  127         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  128         -
                            )
  129         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `smithy.api#Boolean`)"))
  130         -
                        }
  131         -
                        ?
  132         -
                    )
  133         -
                ;
  134         -
                builder = builder.set_false_boolean_value(var_5);
  135         -
            }
         161  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("falseBooleanValue") /* falseBooleanValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$falseBooleanValue */ =>  {
         162  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_5 =
         163  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         164  +
                        /* XmlBindingTraitParserGenerator.kt:676 */ {
         165  +
                            /* XmlBindingTraitParserGenerator.kt:677 */<bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
         166  +
                                /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         167  +
                            /* XmlBindingTraitParserGenerator.kt:677 */)
         168  +
                            /* XmlBindingTraitParserGenerator.kt:685 */.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `smithy.api#Boolean`)"))
         169  +
                        /* XmlBindingTraitParserGenerator.kt:676 */}
         170  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         171  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         172  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         173  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_false_boolean_value(var_5);
         174  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
  136    175   
            ,
  137         -
            s if s.matches("shortValue") /* shortValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$shortValue */ =>  {
  138         -
                let var_6 =
  139         -
                    Some(
  140         -
                         {
  141         -
                            <i16 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
  142         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  143         -
                            )
  144         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (short: `smithy.api#Short`)"))
  145         -
                        }
  146         -
                        ?
  147         -
                    )
  148         -
                ;
  149         -
                builder = builder.set_short_value(var_6);
  150         -
            }
         176  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("shortValue") /* shortValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$shortValue */ =>  {
         177  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_6 =
         178  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         179  +
                        /* XmlBindingTraitParserGenerator.kt:676 */ {
         180  +
                            /* XmlBindingTraitParserGenerator.kt:677 */<i16 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
         181  +
                                /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         182  +
                            /* XmlBindingTraitParserGenerator.kt:677 */)
         183  +
                            /* XmlBindingTraitParserGenerator.kt:685 */.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (short: `smithy.api#Short`)"))
         184  +
                        /* XmlBindingTraitParserGenerator.kt:676 */}
         185  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         186  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         187  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         188  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_short_value(var_6);
         189  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
  151    190   
            ,
  152         -
            s if s.matches("integerValue") /* integerValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$integerValue */ =>  {
  153         -
                let var_7 =
  154         -
                    Some(
  155         -
                         {
  156         -
                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
  157         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  158         -
                            )
  159         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `smithy.api#Integer`)"))
  160         -
                        }
  161         -
                        ?
  162         -
                    )
  163         -
                ;
  164         -
                builder = builder.set_integer_value(var_7);
  165         -
            }
         191  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("integerValue") /* integerValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$integerValue */ =>  {
         192  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_7 =
         193  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         194  +
                        /* XmlBindingTraitParserGenerator.kt:676 */ {
         195  +
                            /* XmlBindingTraitParserGenerator.kt:677 */<i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
         196  +
                                /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         197  +
                            /* XmlBindingTraitParserGenerator.kt:677 */)
         198  +
                            /* XmlBindingTraitParserGenerator.kt:685 */.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `smithy.api#Integer`)"))
         199  +
                        /* XmlBindingTraitParserGenerator.kt:676 */}
         200  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         201  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         202  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         203  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_integer_value(var_7);
         204  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
  166    205   
            ,
  167         -
            s if s.matches("DoubleDribble") /* doubleValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$doubleValue */ =>  {
  168         -
                let var_8 =
  169         -
                    Some(
  170         -
                         {
  171         -
                            <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
  172         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  173         -
                            )
  174         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (double: `smithy.api#Double`)"))
  175         -
                        }
  176         -
                        ?
  177         -
                    )
  178         -
                ;
  179         -
                builder = builder.set_double_value(var_8);
  180         -
            }
         206  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("DoubleDribble") /* doubleValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$doubleValue */ =>  {
         207  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_8 =
         208  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         209  +
                        /* XmlBindingTraitParserGenerator.kt:676 */ {
         210  +
                            /* XmlBindingTraitParserGenerator.kt:677 */<f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
         211  +
                                /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         212  +
                            /* XmlBindingTraitParserGenerator.kt:677 */)
         213  +
                            /* XmlBindingTraitParserGenerator.kt:685 */.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (double: `smithy.api#Double`)"))
         214  +
                        /* XmlBindingTraitParserGenerator.kt:676 */}
         215  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         216  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         217  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         218  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_double_value(var_8);
         219  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
  181    220   
            ,
  182         -
            s if s.matches("trueBooleanValue") /* trueBooleanValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$trueBooleanValue */ =>  {
  183         -
                let var_9 =
  184         -
                    Some(
  185         -
                         {
  186         -
                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
  187         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  188         -
                            )
  189         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `smithy.api#Boolean`)"))
  190         -
                        }
  191         -
                        ?
  192         -
                    )
  193         -
                ;
  194         -
                builder = builder.set_true_boolean_value(var_9);
  195         -
            }
         221  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("trueBooleanValue") /* trueBooleanValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$trueBooleanValue */ =>  {
         222  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_9 =
         223  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         224  +
                        /* XmlBindingTraitParserGenerator.kt:676 */ {
         225  +
                            /* XmlBindingTraitParserGenerator.kt:677 */<bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
         226  +
                                /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         227  +
                            /* XmlBindingTraitParserGenerator.kt:677 */)
         228  +
                            /* XmlBindingTraitParserGenerator.kt:685 */.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `smithy.api#Boolean`)"))
         229  +
                        /* XmlBindingTraitParserGenerator.kt:676 */}
         230  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         231  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         232  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         233  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_true_boolean_value(var_9);
         234  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
  196    235   
            ,
  197         -
            s if s.matches("longValue") /* longValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$longValue */ =>  {
  198         -
                let var_10 =
  199         -
                    Some(
  200         -
                         {
  201         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
  202         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  203         -
                            )
  204         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `smithy.api#Long`)"))
  205         -
                        }
  206         -
                        ?
  207         -
                    )
  208         -
                ;
  209         -
                builder = builder.set_long_value(var_10);
  210         -
            }
         236  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("longValue") /* longValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$longValue */ =>  {
         237  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_10 =
         238  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         239  +
                        /* XmlBindingTraitParserGenerator.kt:676 */ {
         240  +
                            /* XmlBindingTraitParserGenerator.kt:677 */<i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
         241  +
                                /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         242  +
                            /* XmlBindingTraitParserGenerator.kt:677 */)
         243  +
                            /* XmlBindingTraitParserGenerator.kt:685 */.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `smithy.api#Long`)"))
         244  +
                        /* XmlBindingTraitParserGenerator.kt:676 */}
         245  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         246  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         247  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         248  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_long_value(var_10);
         249  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
  211    250   
            ,
  212         -
            s if s.matches("byteValue") /* byteValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$byteValue */ =>  {
  213         -
                let var_11 =
  214         -
                    Some(
  215         -
                         {
  216         -
                            <i8 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
  217         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  218         -
                            )
  219         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (byte: `smithy.api#Byte`)"))
  220         -
                        }
  221         -
                        ?
  222         -
                    )
  223         -
                ;
  224         -
                builder = builder.set_byte_value(var_11);
  225         -
            }
         251  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("byteValue") /* byteValue aws.protocoltests.restxml.synthetic#SimpleScalarPropertiesOutput$byteValue */ =>  {
         252  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_11 =
         253  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         254  +
                        /* XmlBindingTraitParserGenerator.kt:676 */ {
         255  +
                            /* XmlBindingTraitParserGenerator.kt:677 */<i8 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
         256  +
                                /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         257  +
                            /* XmlBindingTraitParserGenerator.kt:677 */)
         258  +
                            /* XmlBindingTraitParserGenerator.kt:685 */.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (byte: `smithy.api#Byte`)"))
         259  +
                        /* XmlBindingTraitParserGenerator.kt:676 */}
         260  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         261  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         262  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         263  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_byte_value(var_11);
         264  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
  226    265   
            ,
  227         -
            _ => {}
  228         -
        }
         266  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
         267  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
         268  +
        /* XmlBindingTraitParserGenerator.kt:352 */
  229    269   
    }
         270  +
    /* XmlBindingTraitParserGenerator.kt:213 */
  230    271   
    Ok(builder)
         272  +
    /* XmlBindingTraitParserGenerator.kt:189 */
  231    273   
}

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

@@ -1,1 +46,114 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitSerializerGenerator.kt:427 */
    2      3   
pub fn ser_simple_scalar_properties_input_input_input(
    3      4   
    input: &crate::operation::simple_scalar_properties::SimpleScalarPropertiesInput,
    4      5   
    writer: ::aws_smithy_xml::encode::ElWriter,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* RustType.kt:516 */
    6      8   
    #[allow(unused_mut)]
           9  +
    /* XmlBindingTraitSerializerGenerator.kt:299 */
    7     10   
    let mut scope = writer.finish();
          11  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
    8     12   
    if let Some(var_1) = &input.byte_value {
          13  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
    9     14   
        let mut inner_writer = scope.start_el("byteValue").finish();
   10         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_1).encode());
          15  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          16  +
        inner_writer.data(
          17  +
            /* XmlBindingTraitSerializerGenerator.kt:325 */
          18  +
            ::aws_smithy_types::primitive::Encoder::from(*var_1).encode(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          19  +
        );
          20  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   11     21   
    }
          22  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   12     23   
    if let Some(var_2) = &input.double_value {
          24  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   13     25   
        let mut inner_writer = scope.start_el("DoubleDribble").finish();
   14         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_2).encode());
          26  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          27  +
        inner_writer.data(
          28  +
            /* XmlBindingTraitSerializerGenerator.kt:325 */
          29  +
            ::aws_smithy_types::primitive::Encoder::from(*var_2).encode(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          30  +
        );
          31  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   15     32   
    }
          33  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   16     34   
    if let Some(var_3) = &input.false_boolean_value {
          35  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   17     36   
        let mut inner_writer = scope.start_el("falseBooleanValue").finish();
   18         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_3).encode());
          37  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          38  +
        inner_writer.data(
          39  +
            /* XmlBindingTraitSerializerGenerator.kt:325 */
          40  +
            ::aws_smithy_types::primitive::Encoder::from(*var_3).encode(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          41  +
        );
          42  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   19     43   
    }
          44  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   20     45   
    if let Some(var_4) = &input.float_value {
          46  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   21     47   
        let mut inner_writer = scope.start_el("floatValue").finish();
   22         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_4).encode());
          48  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          49  +
        inner_writer.data(
          50  +
            /* XmlBindingTraitSerializerGenerator.kt:325 */
          51  +
            ::aws_smithy_types::primitive::Encoder::from(*var_4).encode(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          52  +
        );
          53  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   23     54   
    }
          55  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   24     56   
    if let Some(var_5) = &input.integer_value {
          57  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   25     58   
        let mut inner_writer = scope.start_el("integerValue").finish();
   26         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_5).encode());
          59  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          60  +
        inner_writer.data(
          61  +
            /* XmlBindingTraitSerializerGenerator.kt:325 */
          62  +
            ::aws_smithy_types::primitive::Encoder::from(*var_5).encode(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          63  +
        );
          64  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   27     65   
    }
          66  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   28     67   
    if let Some(var_6) = &input.long_value {
          68  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   29     69   
        let mut inner_writer = scope.start_el("longValue").finish();
   30         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_6).encode());
          70  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          71  +
        inner_writer.data(
          72  +
            /* XmlBindingTraitSerializerGenerator.kt:325 */
          73  +
            ::aws_smithy_types::primitive::Encoder::from(*var_6).encode(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          74  +
        );
          75  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   31     76   
    }
          77  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   32     78   
    if let Some(var_7) = &input.short_value {
          79  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   33     80   
        let mut inner_writer = scope.start_el("shortValue").finish();
   34         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_7).encode());
          81  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          82  +
        inner_writer.data(
          83  +
            /* XmlBindingTraitSerializerGenerator.kt:325 */
          84  +
            ::aws_smithy_types::primitive::Encoder::from(*var_7).encode(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          85  +
        );
          86  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   35     87   
    }
          88  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   36     89   
    if let Some(var_8) = &input.string_value {
          90  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   37     91   
        let mut inner_writer = scope.start_el("stringValue").finish();
   38         -
        inner_writer.data(var_8.as_str());
          92  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          93  +
        inner_writer.data(
          94  +
            /* XmlBindingTraitSerializerGenerator.kt:321 */ var_8.as_str(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          95  +
        );
          96  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   39     97   
    }
          98  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   40     99   
    if let Some(var_9) = &input.true_boolean_value {
         100  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   41    101   
        let mut inner_writer = scope.start_el("trueBooleanValue").finish();
   42         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_9).encode());
         102  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
         103  +
        inner_writer.data(
         104  +
            /* XmlBindingTraitSerializerGenerator.kt:325 */
         105  +
            ::aws_smithy_types::primitive::Encoder::from(*var_9).encode(), /* XmlBindingTraitSerializerGenerator.kt:360 */
         106  +
        );
         107  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   43    108   
    }
         109  +
    /* XmlBindingTraitSerializerGenerator.kt:304 */
   44    110   
    scope.finish();
         111  +
    /* XmlBindingTraitSerializerGenerator.kt:437 */
   45    112   
    Ok(())
         113  +
    /* XmlBindingTraitSerializerGenerator.kt:427 */
   46    114   
}

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_simple_scalar_properties_output.rs

@@ -1,1 +7,11 @@
    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_foo_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-Foo");
           8  +
    /* HttpBindingGenerator.kt:375 */
    6      9   
    ::aws_smithy_http::header::one_or_none(headers)
          10  +
    /* HttpBindingGenerator.kt:153 */
    7     11   
}

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

@@ -1,1 +22,29 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitParserGenerator.kt:546 */
    2      3   
pub fn de_string_list(
    3      4   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
    4      5   
) -> ::std::result::Result<::std::vec::Vec<::std::string::String>, ::aws_smithy_xml::decode::XmlDecodeError> {
           6  +
    /* XmlBindingTraitParserGenerator.kt:551 */
    5      7   
    let mut out = std::vec::Vec::new();
           8  +
    /* XmlBindingTraitParserGenerator.kt:352 */
    6      9   
    while let Some(mut tag) = decoder.next_tag() {
          10  +
        /* XmlBindingTraitParserGenerator.kt:353 */
    7     11   
        match tag.start_el() {
    8         -
            s if s.matches("member") /* member aws.protocoltests.shared#StringList$member */ =>  {
    9         -
                out.push(
   10         -
                    Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   11         -
                        ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   12         -
                        .into()
   13         -
                    )
   14         -
                    ?
   15         -
                );
   16         -
            }
          12  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("member") /* member aws.protocoltests.shared#StringList$member */ =>  {
          13  +
                /* XmlBindingTraitParserGenerator.kt:554 */out.push(
          14  +
                    /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          15  +
                        /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          16  +
                        /* XmlBindingTraitParserGenerator.kt:748 */.into()
          17  +
                    /* XmlBindingTraitParserGenerator.kt:729 */)
          18  +
                    /* XmlBindingTraitParserGenerator.kt:402 */?
          19  +
                /* XmlBindingTraitParserGenerator.kt:554 */);
          20  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   17     21   
            ,
   18         -
            _ => {}
   19         -
        }
          22  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
          23  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
          24  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   20     25   
    }
          26  +
    /* XmlBindingTraitParserGenerator.kt:559 */
   21     27   
    Ok(out)
          28  +
    /* XmlBindingTraitParserGenerator.kt:546 */
   22     29   
}

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_string_set.rs

@@ -1,1 +22,29 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitParserGenerator.kt:546 */
    2      3   
pub fn de_string_set(
    3      4   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
    4      5   
) -> ::std::result::Result<::std::vec::Vec<::std::string::String>, ::aws_smithy_xml::decode::XmlDecodeError> {
           6  +
    /* XmlBindingTraitParserGenerator.kt:551 */
    5      7   
    let mut out = std::vec::Vec::new();
           8  +
    /* XmlBindingTraitParserGenerator.kt:352 */
    6      9   
    while let Some(mut tag) = decoder.next_tag() {
          10  +
        /* XmlBindingTraitParserGenerator.kt:353 */
    7     11   
        match tag.start_el() {
    8         -
            s if s.matches("member") /* member aws.protocoltests.shared#StringSet$member */ =>  {
    9         -
                out.push(
   10         -
                    Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   11         -
                        ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   12         -
                        .into()
   13         -
                    )
   14         -
                    ?
   15         -
                );
   16         -
            }
          12  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("member") /* member aws.protocoltests.shared#StringSet$member */ =>  {
          13  +
                /* XmlBindingTraitParserGenerator.kt:554 */out.push(
          14  +
                    /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          15  +
                        /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          16  +
                        /* XmlBindingTraitParserGenerator.kt:748 */.into()
          17  +
                    /* XmlBindingTraitParserGenerator.kt:729 */)
          18  +
                    /* XmlBindingTraitParserGenerator.kt:402 */?
          19  +
                /* XmlBindingTraitParserGenerator.kt:554 */);
          20  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   17     21   
            ,
   18         -
            _ => {}
   19         -
        }
          22  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
          23  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
          24  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   20     25   
    }
          26  +
    /* XmlBindingTraitParserGenerator.kt:559 */
   21     27   
    Ok(out)
          28  +
    /* XmlBindingTraitParserGenerator.kt:546 */
   22     29   
}

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_structure_list.rs

@@ -1,1 +19,26 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitParserGenerator.kt:546 */
    2      3   
pub fn de_structure_list(
    3      4   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
    4      5   
) -> ::std::result::Result<::std::vec::Vec<crate::types::StructureListMember>, ::aws_smithy_xml::decode::XmlDecodeError> {
           6  +
    /* XmlBindingTraitParserGenerator.kt:551 */
    5      7   
    let mut out = std::vec::Vec::new();
           8  +
    /* XmlBindingTraitParserGenerator.kt:352 */
    6      9   
    while let Some(mut tag) = decoder.next_tag() {
          10  +
        /* XmlBindingTraitParserGenerator.kt:353 */
    7     11   
        match tag.start_el() {
    8         -
            s if s.matches("item") /* member aws.protocoltests.restxml#StructureList$member */ =>  {
    9         -
                out.push(
   10         -
                    crate::protocol_serde::shape_structure_list_member::de_structure_list_member(&mut tag)
   11         -
                    ?
   12         -
                );
   13         -
            }
          12  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("item") /* member aws.protocoltests.restxml#StructureList$member */ =>  {
          13  +
                /* XmlBindingTraitParserGenerator.kt:554 */out.push(
          14  +
                    /* XmlBindingTraitParserGenerator.kt:536 */crate::protocol_serde::shape_structure_list_member::de_structure_list_member(&mut tag)
          15  +
                    /* XmlBindingTraitParserGenerator.kt:402 */?
          16  +
                /* XmlBindingTraitParserGenerator.kt:554 */);
          17  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   14     18   
            ,
   15         -
            _ => {}
   16         -
        }
          19  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
          20  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
          21  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   17     22   
    }
          23  +
    /* XmlBindingTraitParserGenerator.kt:559 */
   18     24   
    Ok(out)
          25  +
    /* XmlBindingTraitParserGenerator.kt:546 */
   19     26   
}

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_structure_list_member.rs

@@ -1,1 +58,85 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::needless_question_mark)]
           4  +
/* XmlBindingTraitParserGenerator.kt:510 */
    3      5   
pub fn de_structure_list_member(
    4      6   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
    5      7   
) -> ::std::result::Result<crate::types::StructureListMember, ::aws_smithy_xml::decode::XmlDecodeError> {
           8  +
    /* RustType.kt:516 */
    6      9   
    #[allow(unused_mut)]
          10  +
    /* XmlBindingTraitParserGenerator.kt:515 */
    7     11   
    let mut builder = crate::types::StructureListMember::builder();
          12  +
    /* XmlBindingTraitParserGenerator.kt:352 */
    8     13   
    while let Some(mut tag) = decoder.next_tag() {
          14  +
        /* XmlBindingTraitParserGenerator.kt:353 */
    9     15   
        match tag.start_el() {
   10         -
            s if s.matches("value") /* a aws.protocoltests.restxml#StructureListMember$a */ =>  {
   11         -
                let var_1 =
   12         -
                    Some(
   13         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   14         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   15         -
                            .into()
   16         -
                        )
   17         -
                        ?
   18         -
                    )
   19         -
                ;
   20         -
                builder = builder.set_a(var_1);
   21         -
            }
          16  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("value") /* a aws.protocoltests.restxml#StructureListMember$a */ =>  {
          17  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_1 =
          18  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
          19  +
                        /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          20  +
                            /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          21  +
                            /* XmlBindingTraitParserGenerator.kt:748 */.into()
          22  +
                        /* XmlBindingTraitParserGenerator.kt:729 */)
          23  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
          24  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
          25  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
          26  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_a(var_1);
          27  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   22     28   
            ,
   23         -
            s if s.matches("other") /* b aws.protocoltests.restxml#StructureListMember$b */ =>  {
   24         -
                let var_2 =
   25         -
                    Some(
   26         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   27         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   28         -
                            .into()
   29         -
                        )
   30         -
                        ?
   31         -
                    )
   32         -
                ;
   33         -
                builder = builder.set_b(var_2);
   34         -
            }
          29  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("other") /* b aws.protocoltests.restxml#StructureListMember$b */ =>  {
          30  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_2 =
          31  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
          32  +
                        /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          33  +
                            /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          34  +
                            /* XmlBindingTraitParserGenerator.kt:748 */.into()
          35  +
                        /* XmlBindingTraitParserGenerator.kt:729 */)
          36  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
          37  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
          38  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
          39  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_b(var_2);
          40  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   35     41   
            ,
   36         -
            _ => {}
   37         -
        }
          42  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
          43  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
          44  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   38     45   
    }
          46  +
    /* XmlBindingTraitParserGenerator.kt:533 */
   39     47   
    Ok(builder.build())
          48  +
    /* XmlBindingTraitParserGenerator.kt:510 */
   40     49   
}
   41     50   
          51  +
/* XmlBindingTraitSerializerGenerator.kt:427 */
   42     52   
pub fn ser_structure_list_member(
   43     53   
    input: &crate::types::StructureListMember,
   44     54   
    writer: ::aws_smithy_xml::encode::ElWriter,
   45     55   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
          56  +
    /* RustType.kt:516 */
   46     57   
    #[allow(unused_mut)]
          58  +
    /* XmlBindingTraitSerializerGenerator.kt:299 */
   47     59   
    let mut scope = writer.finish();
          60  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   48     61   
    if let Some(var_3) = &input.a {
          62  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   49     63   
        let mut inner_writer = scope.start_el("value").finish();
   50         -
        inner_writer.data(var_3.as_str());
          64  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          65  +
        inner_writer.data(
          66  +
            /* XmlBindingTraitSerializerGenerator.kt:321 */ var_3.as_str(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          67  +
        );
          68  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   51     69   
    }
          70  +
    /* XmlBindingTraitSerializerGenerator.kt:555 */
   52     71   
    if let Some(var_4) = &input.b {
          72  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   53     73   
        let mut inner_writer = scope.start_el("other").finish();
   54         -
        inner_writer.data(var_4.as_str());
          74  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          75  +
        inner_writer.data(
          76  +
            /* XmlBindingTraitSerializerGenerator.kt:321 */ var_4.as_str(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          77  +
        );
          78  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   55     79   
    }
          80  +
    /* XmlBindingTraitSerializerGenerator.kt:304 */
   56     81   
    scope.finish();
          82  +
    /* XmlBindingTraitSerializerGenerator.kt:437 */
   57     83   
    Ok(())
          84  +
    /* XmlBindingTraitSerializerGenerator.kt:427 */
   58     85   
}

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_timestamp_format_headers.rs

@@ -1,1 +165,225 @@
    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_timestamp_format_headers_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::timestamp_format_headers::TimestampFormatHeadersOutput,
    9     11   
    crate::operation::timestamp_format_headers::TimestampFormatHeadersError,
   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::timestamp_format_headers::TimestampFormatHeadersError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:185 */
   15     21   
    Err(crate::operation::timestamp_format_headers::TimestampFormatHeadersError::generic(generic))
          22  +
    /* ProtocolParserGenerator.kt:99 */
   16     23   
}
   17     24   
          25  +
/* RustType.kt:516 */
   18     26   
#[allow(clippy::unnecessary_wraps)]
          27  +
/* ProtocolParserGenerator.kt:71 */
   19     28   
pub fn de_timestamp_format_headers_http_response(
   20     29   
    _response_status: u16,
   21     30   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   22     31   
    _response_body: &[u8],
   23     32   
) -> std::result::Result<
   24     33   
    crate::operation::timestamp_format_headers::TimestampFormatHeadersOutput,
   25     34   
    crate::operation::timestamp_format_headers::TimestampFormatHeadersError,
   26     35   
> {
          36  +
    /* ProtocolParserGenerator.kt:77 */
   27     37   
    Ok({
          38  +
        /* RustType.kt:516 */
   28     39   
        #[allow(unused_mut)]
          40  +
        /* ProtocolParserGenerator.kt:240 */
   29     41   
        let mut output = crate::operation::timestamp_format_headers::builders::TimestampFormatHeadersOutputBuilder::default();
          42  +
        /* ProtocolParserGenerator.kt:267 */
   30     43   
        output = output.set_default_format(
          44  +
            /* ProtocolParserGenerator.kt:302 */
   31     45   
            crate::protocol_serde::shape_timestamp_format_headers_output::de_default_format_header(_response_headers).map_err(|_| {
   32     46   
                crate::operation::timestamp_format_headers::TimestampFormatHeadersError::unhandled(
   33     47   
                    "Failed to parse defaultFormat from header `X-defaultFormat",
   34     48   
                )
   35         -
            })?,
          49  +
            })?, /* ProtocolParserGenerator.kt:267 */
   36     50   
        );
          51  +
        /* ProtocolParserGenerator.kt:267 */
   37     52   
        output = output.set_member_date_time(
          53  +
            /* ProtocolParserGenerator.kt:302 */
   38     54   
            crate::protocol_serde::shape_timestamp_format_headers_output::de_member_date_time_header(_response_headers).map_err(|_| {
   39     55   
                crate::operation::timestamp_format_headers::TimestampFormatHeadersError::unhandled(
   40     56   
                    "Failed to parse memberDateTime from header `X-memberDateTime",
   41     57   
                )
   42         -
            })?,
          58  +
            })?, /* ProtocolParserGenerator.kt:267 */
   43     59   
        );
          60  +
        /* ProtocolParserGenerator.kt:267 */
   44     61   
        output = output.set_member_epoch_seconds(
          62  +
            /* ProtocolParserGenerator.kt:302 */
   45     63   
            crate::protocol_serde::shape_timestamp_format_headers_output::de_member_epoch_seconds_header(_response_headers).map_err(|_| {
   46     64   
                crate::operation::timestamp_format_headers::TimestampFormatHeadersError::unhandled(
   47     65   
                    "Failed to parse memberEpochSeconds from header `X-memberEpochSeconds",
   48     66   
                )
   49         -
            })?,
          67  +
            })?, /* ProtocolParserGenerator.kt:267 */
   50     68   
        );
          69  +
        /* ProtocolParserGenerator.kt:267 */
   51     70   
        output = output.set_member_http_date(
          71  +
            /* ProtocolParserGenerator.kt:302 */
   52     72   
            crate::protocol_serde::shape_timestamp_format_headers_output::de_member_http_date_header(_response_headers).map_err(|_| {
   53     73   
                crate::operation::timestamp_format_headers::TimestampFormatHeadersError::unhandled(
   54     74   
                    "Failed to parse memberHttpDate from header `X-memberHttpDate",
   55     75   
                )
   56         -
            })?,
          76  +
            })?, /* ProtocolParserGenerator.kt:267 */
   57     77   
        );
          78  +
        /* ProtocolParserGenerator.kt:267 */
   58     79   
        output = output.set_target_date_time(
          80  +
            /* ProtocolParserGenerator.kt:302 */
   59     81   
            crate::protocol_serde::shape_timestamp_format_headers_output::de_target_date_time_header(_response_headers).map_err(|_| {
   60     82   
                crate::operation::timestamp_format_headers::TimestampFormatHeadersError::unhandled(
   61     83   
                    "Failed to parse targetDateTime from header `X-targetDateTime",
   62     84   
                )
   63         -
            })?,
          85  +
            })?, /* ProtocolParserGenerator.kt:267 */
   64     86   
        );
          87  +
        /* ProtocolParserGenerator.kt:267 */
   65     88   
        output = output.set_target_epoch_seconds(
          89  +
            /* ProtocolParserGenerator.kt:302 */
   66     90   
            crate::protocol_serde::shape_timestamp_format_headers_output::de_target_epoch_seconds_header(_response_headers).map_err(|_| {
   67     91   
                crate::operation::timestamp_format_headers::TimestampFormatHeadersError::unhandled(
   68     92   
                    "Failed to parse targetEpochSeconds from header `X-targetEpochSeconds",
   69     93   
                )
   70         -
            })?,
          94  +
            })?, /* ProtocolParserGenerator.kt:267 */
   71     95   
        );
          96  +
        /* ProtocolParserGenerator.kt:267 */
   72     97   
        output = output.set_target_http_date(
          98  +
            /* ProtocolParserGenerator.kt:302 */
   73     99   
            crate::protocol_serde::shape_timestamp_format_headers_output::de_target_http_date_header(_response_headers).map_err(|_| {
   74    100   
                crate::operation::timestamp_format_headers::TimestampFormatHeadersError::unhandled(
   75    101   
                    "Failed to parse targetHttpDate from header `X-targetHttpDate",
   76    102   
                )
   77         -
            })?,
         103  +
            })?, /* ProtocolParserGenerator.kt:267 */
   78    104   
        );
         105  +
        /* ClientBuilderInstantiator.kt:56 */
   79    106   
        output.build()
         107  +
        /* ProtocolParserGenerator.kt:77 */
   80    108   
    })
         109  +
    /* ProtocolParserGenerator.kt:71 */
   81    110   
}
   82    111   
         112  +
/* HttpBindingGenerator.kt:542 */
   83    113   
pub fn ser_timestamp_format_headers_headers(
   84    114   
    input: &crate::operation::timestamp_format_headers::TimestampFormatHeadersInput,
   85    115   
    mut builder: ::http::request::Builder,
   86    116   
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
         117  +
    /* HttpBindingGenerator.kt:592 */
   87    118   
    if let ::std::option::Option::Some(inner_1) = &input.member_epoch_seconds {
         119  +
        /* HttpBindingGenerator.kt:704 */
   88    120   
        let formatted_2 = inner_1.fmt(::aws_smithy_types::date_time::Format::EpochSeconds)?;
         121  +
        /* HttpBindingGenerator.kt:706 */
   89    122   
        let header_value = formatted_2;
   90    123   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
   91    124   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
   92    125   
                "member_epoch_seconds",
   93    126   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
   94    127   
            )
   95    128   
        })?;
   96    129   
        builder = builder.header("X-memberEpochSeconds", header_value);
         130  +
        /* HttpBindingGenerator.kt:592 */
   97    131   
    }
         132  +
    /* HttpBindingGenerator.kt:592 */
   98    133   
    if let ::std::option::Option::Some(inner_3) = &input.member_http_date {
         134  +
        /* HttpBindingGenerator.kt:704 */
   99    135   
        let formatted_4 = inner_3.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
         136  +
        /* HttpBindingGenerator.kt:706 */
  100    137   
        let header_value = formatted_4;
  101    138   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  102    139   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  103    140   
                "member_http_date",
  104    141   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  105    142   
            )
  106    143   
        })?;
  107    144   
        builder = builder.header("X-memberHttpDate", header_value);
         145  +
        /* HttpBindingGenerator.kt:592 */
  108    146   
    }
         147  +
    /* HttpBindingGenerator.kt:592 */
  109    148   
    if let ::std::option::Option::Some(inner_5) = &input.member_date_time {
         149  +
        /* HttpBindingGenerator.kt:704 */
  110    150   
        let formatted_6 = inner_5.fmt(::aws_smithy_types::date_time::Format::DateTime)?;
         151  +
        /* HttpBindingGenerator.kt:706 */
  111    152   
        let header_value = formatted_6;
  112    153   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  113    154   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  114    155   
                "member_date_time",
  115    156   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  116    157   
            )
  117    158   
        })?;
  118    159   
        builder = builder.header("X-memberDateTime", header_value);
         160  +
        /* HttpBindingGenerator.kt:592 */
  119    161   
    }
         162  +
    /* HttpBindingGenerator.kt:592 */
  120    163   
    if let ::std::option::Option::Some(inner_7) = &input.default_format {
         164  +
        /* HttpBindingGenerator.kt:704 */
  121    165   
        let formatted_8 = inner_7.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
         166  +
        /* HttpBindingGenerator.kt:706 */
  122    167   
        let header_value = formatted_8;
  123    168   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  124    169   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  125    170   
                "default_format",
  126    171   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  127    172   
            )
  128    173   
        })?;
  129    174   
        builder = builder.header("X-defaultFormat", header_value);
         175  +
        /* HttpBindingGenerator.kt:592 */
  130    176   
    }
         177  +
    /* HttpBindingGenerator.kt:592 */
  131    178   
    if let ::std::option::Option::Some(inner_9) = &input.target_epoch_seconds {
         179  +
        /* HttpBindingGenerator.kt:704 */
  132    180   
        let formatted_10 = inner_9.fmt(::aws_smithy_types::date_time::Format::EpochSeconds)?;
         181  +
        /* HttpBindingGenerator.kt:706 */
  133    182   
        let header_value = formatted_10;
  134    183   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  135    184   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  136    185   
                "target_epoch_seconds",
  137    186   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  138    187   
            )
  139    188   
        })?;
  140    189   
        builder = builder.header("X-targetEpochSeconds", header_value);
         190  +
        /* HttpBindingGenerator.kt:592 */
  141    191   
    }
         192  +
    /* HttpBindingGenerator.kt:592 */
  142    193   
    if let ::std::option::Option::Some(inner_11) = &input.target_http_date {
         194  +
        /* HttpBindingGenerator.kt:704 */
  143    195   
        let formatted_12 = inner_11.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
         196  +
        /* HttpBindingGenerator.kt:706 */
  144    197   
        let header_value = formatted_12;
  145    198   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  146    199   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  147    200   
                "target_http_date",
  148    201   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  149    202   
            )
  150    203   
        })?;
  151    204   
        builder = builder.header("X-targetHttpDate", header_value);
         205  +
        /* HttpBindingGenerator.kt:592 */
  152    206   
    }
         207  +
    /* HttpBindingGenerator.kt:592 */
  153    208   
    if let ::std::option::Option::Some(inner_13) = &input.target_date_time {
         209  +
        /* HttpBindingGenerator.kt:704 */
  154    210   
        let formatted_14 = inner_13.fmt(::aws_smithy_types::date_time::Format::DateTime)?;
         211  +
        /* HttpBindingGenerator.kt:706 */
  155    212   
        let header_value = formatted_14;
  156    213   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  157    214   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  158    215   
                "target_date_time",
  159    216   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  160    217   
            )
  161    218   
        })?;
  162    219   
        builder = builder.header("X-targetDateTime", header_value);
         220  +
        /* HttpBindingGenerator.kt:592 */
  163    221   
    }
         222  +
    /* HttpBindingGenerator.kt:555 */
  164    223   
    Ok(builder)
         224  +
    /* HttpBindingGenerator.kt:542 */
  165    225   
}

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_timestamp_format_headers_output.rs

@@ -1,1 +116,154 @@
    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_default_format_header(
    3      4   
    header_map: &::aws_smithy_runtime_api::http::Headers,
    4      5   
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
           6  +
    /* HttpBindingGenerator.kt:160 */
    5      7   
    let headers = header_map.get_all("X-defaultFormat");
    6         -
    let var_1: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?;
           8  +
    /* HttpBindingGenerator.kt:394 */
           9  +
    let var_1: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?
          10  +
    /* HttpBindingGenerator.kt:402 */;
          11  +
    /* HttpBindingGenerator.kt:468 */
    7     12   
    if var_1.len() > 1 {
    8     13   
        Err(::aws_smithy_http::header::ParseError::new(format!(
    9     14   
            "expected one item but found {}",
   10     15   
            var_1.len()
   11     16   
        )))
   12     17   
    } else {
   13     18   
        let mut var_1 = var_1;
   14     19   
        Ok(var_1.pop())
   15     20   
    }
          21  +
    /* HttpBindingGenerator.kt:153 */
   16     22   
}
   17     23   
          24  +
/* HttpBindingGenerator.kt:153 */
   18     25   
pub(crate) fn de_member_date_time_header(
   19     26   
    header_map: &::aws_smithy_runtime_api::http::Headers,
   20     27   
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
          28  +
    /* HttpBindingGenerator.kt:160 */
   21     29   
    let headers = header_map.get_all("X-memberDateTime");
   22         -
    let var_2: Vec<::aws_smithy_types::DateTime> =
   23         -
        ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::DateTimeWithOffset)?;
          30  +
    /* HttpBindingGenerator.kt:394 */
          31  +
    let var_2: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::DateTimeWithOffset)?
          32  +
    /* HttpBindingGenerator.kt:402 */;
          33  +
    /* HttpBindingGenerator.kt:468 */
   24     34   
    if var_2.len() > 1 {
   25     35   
        Err(::aws_smithy_http::header::ParseError::new(format!(
   26     36   
            "expected one item but found {}",
   27     37   
            var_2.len()
   28     38   
        )))
   29     39   
    } else {
   30     40   
        let mut var_2 = var_2;
   31     41   
        Ok(var_2.pop())
   32     42   
    }
          43  +
    /* HttpBindingGenerator.kt:153 */
   33     44   
}
   34     45   
          46  +
/* HttpBindingGenerator.kt:153 */
   35     47   
pub(crate) fn de_member_epoch_seconds_header(
   36     48   
    header_map: &::aws_smithy_runtime_api::http::Headers,
   37     49   
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
          50  +
    /* HttpBindingGenerator.kt:160 */
   38     51   
    let headers = header_map.get_all("X-memberEpochSeconds");
   39         -
    let var_3: Vec<::aws_smithy_types::DateTime> =
   40         -
        ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::EpochSeconds)?;
          52  +
    /* HttpBindingGenerator.kt:394 */
          53  +
    let var_3: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::EpochSeconds)?
          54  +
    /* HttpBindingGenerator.kt:402 */;
          55  +
    /* HttpBindingGenerator.kt:468 */
   41     56   
    if var_3.len() > 1 {
   42     57   
        Err(::aws_smithy_http::header::ParseError::new(format!(
   43     58   
            "expected one item but found {}",
   44     59   
            var_3.len()
   45     60   
        )))
   46     61   
    } else {
   47     62   
        let mut var_3 = var_3;
   48     63   
        Ok(var_3.pop())
   49     64   
    }
          65  +
    /* HttpBindingGenerator.kt:153 */
   50     66   
}
   51     67   
          68  +
/* HttpBindingGenerator.kt:153 */
   52     69   
pub(crate) fn de_member_http_date_header(
   53     70   
    header_map: &::aws_smithy_runtime_api::http::Headers,
   54     71   
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
          72  +
    /* HttpBindingGenerator.kt:160 */
   55     73   
    let headers = header_map.get_all("X-memberHttpDate");
   56         -
    let var_4: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?;
          74  +
    /* HttpBindingGenerator.kt:394 */
          75  +
    let var_4: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?
          76  +
    /* HttpBindingGenerator.kt:402 */;
          77  +
    /* HttpBindingGenerator.kt:468 */
   57     78   
    if var_4.len() > 1 {
   58     79   
        Err(::aws_smithy_http::header::ParseError::new(format!(
   59     80   
            "expected one item but found {}",
   60     81   
            var_4.len()
   61     82   
        )))
   62     83   
    } else {
   63     84   
        let mut var_4 = var_4;
   64     85   
        Ok(var_4.pop())
   65     86   
    }
          87  +
    /* HttpBindingGenerator.kt:153 */
   66     88   
}
   67     89   
          90  +
/* HttpBindingGenerator.kt:153 */
   68     91   
pub(crate) fn de_target_date_time_header(
   69     92   
    header_map: &::aws_smithy_runtime_api::http::Headers,
   70     93   
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
          94  +
    /* HttpBindingGenerator.kt:160 */
   71     95   
    let headers = header_map.get_all("X-targetDateTime");
   72         -
    let var_5: Vec<::aws_smithy_types::DateTime> =
   73         -
        ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::DateTimeWithOffset)?;
          96  +
    /* HttpBindingGenerator.kt:394 */
          97  +
    let var_5: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::DateTimeWithOffset)?
          98  +
    /* HttpBindingGenerator.kt:402 */;
          99  +
    /* HttpBindingGenerator.kt:468 */
   74    100   
    if var_5.len() > 1 {
   75    101   
        Err(::aws_smithy_http::header::ParseError::new(format!(
   76    102   
            "expected one item but found {}",
   77    103   
            var_5.len()
   78    104   
        )))
   79    105   
    } else {
   80    106   
        let mut var_5 = var_5;
   81    107   
        Ok(var_5.pop())
   82    108   
    }
         109  +
    /* HttpBindingGenerator.kt:153 */
   83    110   
}
   84    111   
         112  +
/* HttpBindingGenerator.kt:153 */
   85    113   
pub(crate) fn de_target_epoch_seconds_header(
   86    114   
    header_map: &::aws_smithy_runtime_api::http::Headers,
   87    115   
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
         116  +
    /* HttpBindingGenerator.kt:160 */
   88    117   
    let headers = header_map.get_all("X-targetEpochSeconds");
   89         -
    let var_6: Vec<::aws_smithy_types::DateTime> =
   90         -
        ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::EpochSeconds)?;
         118  +
    /* HttpBindingGenerator.kt:394 */
         119  +
    let var_6: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::EpochSeconds)?
         120  +
    /* HttpBindingGenerator.kt:402 */;
         121  +
    /* HttpBindingGenerator.kt:468 */
   91    122   
    if var_6.len() > 1 {
   92    123   
        Err(::aws_smithy_http::header::ParseError::new(format!(
   93    124   
            "expected one item but found {}",
   94    125   
            var_6.len()
   95    126   
        )))
   96    127   
    } else {
   97    128   
        let mut var_6 = var_6;
   98    129   
        Ok(var_6.pop())
   99    130   
    }
         131  +
    /* HttpBindingGenerator.kt:153 */
  100    132   
}
  101    133   
         134  +
/* HttpBindingGenerator.kt:153 */
  102    135   
pub(crate) fn de_target_http_date_header(
  103    136   
    header_map: &::aws_smithy_runtime_api::http::Headers,
  104    137   
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
         138  +
    /* HttpBindingGenerator.kt:160 */
  105    139   
    let headers = header_map.get_all("X-targetHttpDate");
  106         -
    let var_7: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?;
         140  +
    /* HttpBindingGenerator.kt:394 */
         141  +
    let var_7: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?
         142  +
    /* HttpBindingGenerator.kt:402 */;
         143  +
    /* HttpBindingGenerator.kt:468 */
  107    144   
    if var_7.len() > 1 {
  108    145   
        Err(::aws_smithy_http::header::ParseError::new(format!(
  109    146   
            "expected one item but found {}",
  110    147   
            var_7.len()
  111    148   
        )))
  112    149   
    } else {
  113    150   
        let mut var_7 = var_7;
  114    151   
        Ok(var_7.pop())
  115    152   
    }
         153  +
    /* HttpBindingGenerator.kt:153 */
  116    154   
}

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_timestamp_list.rs

@@ -1,1 +23,30 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitParserGenerator.kt:546 */
    2      3   
pub fn de_timestamp_list(
    3      4   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
    4      5   
) -> ::std::result::Result<::std::vec::Vec<::aws_smithy_types::DateTime>, ::aws_smithy_xml::decode::XmlDecodeError> {
           6  +
    /* XmlBindingTraitParserGenerator.kt:551 */
    5      7   
    let mut out = std::vec::Vec::new();
           8  +
    /* XmlBindingTraitParserGenerator.kt:352 */
    6      9   
    while let Some(mut tag) = decoder.next_tag() {
          10  +
        /* XmlBindingTraitParserGenerator.kt:353 */
    7     11   
        match tag.start_el() {
    8         -
            s if s.matches("member") /* member aws.protocoltests.shared#TimestampList$member */ =>  {
    9         -
                out.push(
   10         -
                    ::aws_smithy_types::DateTime::from_str(
   11         -
                        ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   12         -
                        , ::aws_smithy_types::date_time::Format::DateTimeWithOffset
   13         -
                    )
   14         -
                    .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (timestamp: `smithy.api#Timestamp`)"))
   15         -
                    ?
   16         -
                );
   17         -
            }
          12  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("member") /* member aws.protocoltests.shared#TimestampList$member */ =>  {
          13  +
                /* XmlBindingTraitParserGenerator.kt:554 */out.push(
          14  +
                    /* XmlBindingTraitParserGenerator.kt:701 */::aws_smithy_types::DateTime::from_str(
          15  +
                        /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          16  +
                        /* XmlBindingTraitParserGenerator.kt:703 */, ::aws_smithy_types::date_time::Format::DateTimeWithOffset
          17  +
                    /* XmlBindingTraitParserGenerator.kt:701 */)
          18  +
                    /* XmlBindingTraitParserGenerator.kt:705 */.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (timestamp: `smithy.api#Timestamp`)"))
          19  +
                    /* XmlBindingTraitParserGenerator.kt:402 */?
          20  +
                /* XmlBindingTraitParserGenerator.kt:554 */);
          21  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   18     22   
            ,
   19         -
            _ => {}
   20         -
        }
          23  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
          24  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
          25  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   21     26   
    }
          27  +
    /* XmlBindingTraitParserGenerator.kt:559 */
   22     28   
    Ok(out)
          29  +
    /* XmlBindingTraitParserGenerator.kt:546 */
   23     30   
}

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_union_payload.rs

@@ -1,1 +38,60 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitSerializerGenerator.kt:450 */
    2      3   
pub fn ser_union_payload(
    3      4   
    input: &crate::types::UnionPayload,
    4      5   
    writer: ::aws_smithy_xml::encode::ElWriter,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* XmlBindingTraitSerializerGenerator.kt:455 */
    6      8   
    let mut scope_writer = writer.finish();
           9  +
    /* XmlBindingTraitSerializerGenerator.kt:456 */
    7     10   
    match input {
    8         -
        crate::types::UnionPayload::Greeting(inner) => {
          11  +
        /* XmlBindingTraitSerializerGenerator.kt:465 */
          12  +
        crate::types::UnionPayload::Greeting(inner) =>
          13  +
        /* SerializerUtil.kt:42 */
          14  +
        {
          15  +
            /* XmlBindingTraitSerializerGenerator.kt:359 */
    9     16   
            let mut inner_writer = scope_writer.start_el("greeting").finish();
   10         -
            inner_writer.data(inner.as_str());
          17  +
            /* XmlBindingTraitSerializerGenerator.kt:360 */
          18  +
            inner_writer.data(
          19  +
                /* XmlBindingTraitSerializerGenerator.kt:321 */ inner.as_str(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          20  +
            );
          21  +
            /* SerializerUtil.kt:42 */
   11     22   
        }
   12         -
        crate::types::UnionPayload::Unknown => return Err(::aws_smithy_types::error::operation::SerializationError::unknown_variant("UnionPayload")),
          23  +
        ,
          24  +
        /* XmlBindingTraitSerializerGenerator.kt:471 */
          25  +
        crate::types::UnionPayload::Unknown => return Err(::aws_smithy_types::error::operation::SerializationError::unknown_variant("UnionPayload")), /* XmlBindingTraitSerializerGenerator.kt:456 */
   13     26   
    }
          27  +
    /* XmlBindingTraitSerializerGenerator.kt:478 */
   14     28   
    Ok(())
          29  +
    /* XmlBindingTraitSerializerGenerator.kt:450 */
   15     30   
}
   16     31   
          32  +
/* XmlBindingTraitParserGenerator.kt:439 */
   17     33   
pub fn de_union_payload(
   18     34   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
   19     35   
) -> ::std::result::Result<crate::types::UnionPayload, ::aws_smithy_xml::decode::XmlDecodeError> {
          36  +
    /* XmlBindingTraitParserGenerator.kt:444 */
   20     37   
    let mut base: Option<crate::types::UnionPayload> = None;
          38  +
    /* XmlBindingTraitParserGenerator.kt:352 */
   21     39   
    while let Some(mut tag) = decoder.next_tag() {
          40  +
        /* XmlBindingTraitParserGenerator.kt:353 */
   22     41   
        match tag.start_el() {
   23         -
            s if s.matches("greeting") /* greeting aws.protocoltests.restxml#UnionPayload$greeting */ =>  {
   24         -
                let tmp =
   25         -
                    Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   26         -
                        ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   27         -
                        .into()
   28         -
                    )
   29         -
                    ?
   30         -
                ;
   31         -
                base = Some(crate::types::UnionPayload::Greeting(tmp));
   32         -
            }
          42  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("greeting") /* greeting aws.protocoltests.restxml#UnionPayload$greeting */ =>  {
          43  +
                /* XmlBindingTraitParserGenerator.kt:460 */let tmp =
          44  +
                    /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          45  +
                        /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          46  +
                        /* XmlBindingTraitParserGenerator.kt:748 */.into()
          47  +
                    /* XmlBindingTraitParserGenerator.kt:729 */)
          48  +
                    /* XmlBindingTraitParserGenerator.kt:402 */?
          49  +
                /* XmlBindingTraitParserGenerator.kt:460 */;
          50  +
                /* XmlBindingTraitParserGenerator.kt:463 */base = Some(crate::types::UnionPayload::Greeting(tmp));
          51  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   33     52   
            ,
   34         -
            _unknown => base = Some(crate::types::UnionPayload::Unknown),
   35         -
        }
          53  +
            /* XmlBindingTraitParserGenerator.kt:468 */_unknown => base = Some(crate::types::UnionPayload::Unknown),
          54  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
          55  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   36     56   
    }
          57  +
    /* XmlBindingTraitParserGenerator.kt:476 */
   37     58   
    base.ok_or_else(|| ::aws_smithy_xml::decode::XmlDecodeError::custom("expected union, got nothing"))
          59  +
    /* XmlBindingTraitParserGenerator.kt:439 */
   38     60   
}

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/protocol_serde/shape_xml_attributes.rs

@@ -1,1 +87,132 @@
    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_xml_attributes_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::xml_attributes::XmlAttributesOutput, crate::operation::xml_attributes::XmlAttributesError> {
          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::xml_attributes::XmlAttributesError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:185 */
   12     18   
    Err(crate::operation::xml_attributes::XmlAttributesError::generic(generic))
          19  +
    /* ProtocolParserGenerator.kt:99 */
   13     20   
}
   14     21   
          22  +
/* RustType.kt:516 */
   15     23   
#[allow(clippy::unnecessary_wraps)]
          24  +
/* ProtocolParserGenerator.kt:71 */
   16     25   
pub fn de_xml_attributes_http_response(
   17     26   
    _response_status: u16,
   18     27   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   19     28   
    _response_body: &[u8],
   20     29   
) -> std::result::Result<crate::operation::xml_attributes::XmlAttributesOutput, crate::operation::xml_attributes::XmlAttributesError> {
          30  +
    /* ProtocolParserGenerator.kt:77 */
   21     31   
    Ok({
          32  +
        /* RustType.kt:516 */
   22     33   
        #[allow(unused_mut)]
          34  +
        /* ProtocolParserGenerator.kt:240 */
   23     35   
        let mut output = crate::operation::xml_attributes::builders::XmlAttributesOutputBuilder::default();
          36  +
        /* ProtocolParserGenerator.kt:247 */
   24     37   
        output = crate::protocol_serde::shape_xml_attributes::de_xml_attributes(_response_body, output)
   25     38   
            .map_err(crate::operation::xml_attributes::XmlAttributesError::unhandled)?;
          39  +
        /* ClientBuilderInstantiator.kt:56 */
   26     40   
        output.build()
          41  +
        /* ProtocolParserGenerator.kt:77 */
   27     42   
    })
          43  +
    /* ProtocolParserGenerator.kt:71 */
   28     44   
}
   29     45   
          46  +
/* XmlBindingTraitSerializerGenerator.kt:116 */
   30     47   
pub fn ser_xml_attributes_op_input(
   31     48   
    input: &crate::operation::xml_attributes::XmlAttributesInput,
   32     49   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          50  +
    /* XmlBindingTraitSerializerGenerator.kt:120 */
   33     51   
    let mut out = String::new();
          52  +
    /* XmlBindingTraitSerializerGenerator.kt:124 */
   34     53   
    {
          54  +
        /* XmlBindingTraitSerializerGenerator.kt:125 */
   35     55   
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
   36     56   
        #[allow(unused_mut)]
   37     57   
        let mut root = writer.start_el("XmlAttributesRequest");
          58  +
        /* XmlBindingTraitSerializerGenerator.kt:440 */
   38     59   
        crate::protocol_serde::shape_xml_attributes_input::ser_xml_attributes_input_input_input(input, root)?
          60  +
        /* XmlBindingTraitSerializerGenerator.kt:124 */
   39     61   
    }
          62  +
    /* XmlBindingTraitSerializerGenerator.kt:137 */
   40     63   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
          64  +
    /* XmlBindingTraitSerializerGenerator.kt:116 */
   41     65   
}
   42     66   
          67  +
/* RustType.kt:516 */
   43     68   
#[allow(unused_mut)]
          69  +
/* XmlBindingTraitParserGenerator.kt:189 */
   44     70   
pub fn de_xml_attributes(
   45     71   
    inp: &[u8],
   46     72   
    mut builder: crate::operation::xml_attributes::builders::XmlAttributesOutputBuilder,
   47     73   
) -> std::result::Result<crate::operation::xml_attributes::builders::XmlAttributesOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
          74  +
    /* XmlBindingTraitParserGenerator.kt:194 */
   48     75   
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
   49     76   
   50     77   
    #[allow(unused_mut)]
   51     78   
    let mut decoder = doc.root_element()?;
   52     79   
    #[allow(unused_variables)]
   53     80   
    let start_el = decoder.start_el();
          81  +
    /* RestXmlParserGenerator.kt:36 */
   54     82   
    if !start_el.matches("XmlAttributesResponse") {
   55     83   
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
   56     84   
            "encountered invalid XML root: expected XmlAttributesResponse but got {:?}. This is likely a bug in the SDK.",
   57     85   
            start_el
   58     86   
        )));
   59     87   
    }
   60         -
    let attrib_1 = {
   61         -
        let s = decoder.start_el().attr("test");
   62         -
        match s {
   63         -
            None => None,
   64         -
            Some(s) => Some(Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(s.into())?),
   65         -
        }
   66         -
    };
          88  +
    /* XmlBindingTraitParserGenerator.kt:316 */
          89  +
    let attrib_1 =
          90  +
        /* XmlBindingTraitParserGenerator.kt:411 */ {
          91  +
            /* XmlBindingTraitParserGenerator.kt:412 */let s = decoder
          92  +
                                .start_el()
          93  +
                                .attr("test");
          94  +
            /* XmlBindingTraitParserGenerator.kt:420 */match s {
          95  +
                /* XmlBindingTraitParserGenerator.kt:421 */None => None,
          96  +
                /* XmlBindingTraitParserGenerator.kt:422 */Some(s) => Some(
          97  +
                    /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          98  +
                        /* XmlBindingTraitParserGenerator.kt:424 */s
          99  +
                        /* XmlBindingTraitParserGenerator.kt:748 */.into()
         100  +
                    /* XmlBindingTraitParserGenerator.kt:729 */)
         101  +
                    /* XmlBindingTraitParserGenerator.kt:426 */?
         102  +
                /* XmlBindingTraitParserGenerator.kt:422 */)
         103  +
            /* XmlBindingTraitParserGenerator.kt:420 */}
         104  +
        /* XmlBindingTraitParserGenerator.kt:411 */}
         105  +
    /* XmlBindingTraitParserGenerator.kt:316 */;
         106  +
    /* XmlBindingTraitParserGenerator.kt:319 */
   67    107   
    builder.attr = attrib_1;
         108  +
    /* XmlBindingTraitParserGenerator.kt:352 */
   68    109   
    while let Some(mut tag) = decoder.next_tag() {
         110  +
        /* XmlBindingTraitParserGenerator.kt:353 */
   69    111   
        match tag.start_el() {
   70         -
            s if s.matches("foo") /* foo aws.protocoltests.restxml.synthetic#XmlAttributesOutput$foo */ =>  {
   71         -
                let var_2 =
   72         -
                    Some(
   73         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   74         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   75         -
                            .into()
   76         -
                        )
   77         -
                        ?
   78         -
                    )
   79         -
                ;
   80         -
                builder = builder.set_foo(var_2);
   81         -
            }
         112  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("foo") /* foo aws.protocoltests.restxml.synthetic#XmlAttributesOutput$foo */ =>  {
         113  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_2 =
         114  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         115  +
                        /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
         116  +
                            /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         117  +
                            /* XmlBindingTraitParserGenerator.kt:748 */.into()
         118  +
                        /* XmlBindingTraitParserGenerator.kt:729 */)
         119  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         120  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         121  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         122  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_foo(var_2);
         123  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   82    124   
            ,
   83         -
            _ => {}
   84         -
        }
         125  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
         126  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
         127  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   85    128   
    }
         129  +
    /* XmlBindingTraitParserGenerator.kt:213 */
   86    130   
    Ok(builder)
         131  +
    /* XmlBindingTraitParserGenerator.kt:189 */
   87    132   
}