Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943

Files changed:

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_enum_key_map.rs

@@ -1,1 +53,71 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitParserGenerator.kt:586 */
    2      3   
pub fn de_enum_key_map(
    3      4   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
    4      5   
) -> ::std::result::Result<::std::collections::HashMap<crate::types::StringEnum, ::std::string::String>, ::aws_smithy_xml::decode::XmlDecodeError> {
           6  +
    /* XmlBindingTraitParserGenerator.kt:591 */
    5      7   
    let mut out = ::std::collections::HashMap::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() {
          12  +
            /* XmlBindingTraitParserGenerator.kt:593 */
    8     13   
            s if s.matches("entry") => {
          14  +
                /* XmlBindingTraitParserGenerator.kt:594 */
    9     15   
                crate::protocol_serde::shape_enum_key_map::de_enum_key_map_entry(&mut tag, &mut out)?;
          16  +
                /* XmlBindingTraitParserGenerator.kt:593 */
   10     17   
            }
   11         -
            _ => {}
          18  +
            /* XmlBindingTraitParserGenerator.kt:356 */ _ => {} /* XmlBindingTraitParserGenerator.kt:353 */
   12     19   
        }
          20  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   13     21   
    }
          22  +
    /* XmlBindingTraitParserGenerator.kt:597 */
   14     23   
    Ok(out)
          24  +
    /* XmlBindingTraitParserGenerator.kt:586 */
   15     25   
}
   16     26   
          27  +
/* XmlBindingTraitParserGenerator.kt:628 */
   17     28   
pub fn de_enum_key_map_entry(
   18     29   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
   19     30   
    out: &mut ::std::collections::HashMap<crate::types::StringEnum, ::std::string::String>,
   20     31   
) -> ::std::result::Result<(), ::aws_smithy_xml::decode::XmlDecodeError> {
          32  +
    /* XmlBindingTraitParserGenerator.kt:634 */
   21     33   
    let mut k: Option<crate::types::StringEnum> = None;
          34  +
    /* XmlBindingTraitParserGenerator.kt:635 */
   22     35   
    let mut v: Option<::std::string::String> = None;
          36  +
    /* XmlBindingTraitParserGenerator.kt:352 */
   23     37   
    while let Some(mut tag) = decoder.next_tag() {
          38  +
        /* XmlBindingTraitParserGenerator.kt:353 */
   24     39   
        match tag.start_el() {
   25         -
            s if s.matches("key") /* key aws.protocoltests.restxml#EnumKeyMap$key */ =>  {
   26         -
                k = Some(
   27         -
                    Result::<crate::types::StringEnum, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   28         -
                        crate::types::StringEnum::from(
   29         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   30         -
                        )
   31         -
                    )
   32         -
                    ?
   33         -
                )
   34         -
            }
          40  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("key") /* key aws.protocoltests.restxml#EnumKeyMap$key */ =>  {
          41  +
                /* XmlBindingTraitParserGenerator.kt:641 */k = Some(
          42  +
                    /* XmlBindingTraitParserGenerator.kt:729 */Result::<crate::types::StringEnum, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          43  +
                        /* XmlBindingTraitParserGenerator.kt:741 */crate::types::StringEnum::from(
          44  +
                            /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          45  +
                        /* XmlBindingTraitParserGenerator.kt:741 */)
          46  +
                    /* XmlBindingTraitParserGenerator.kt:729 */)
          47  +
                    /* XmlBindingTraitParserGenerator.kt:402 */?
          48  +
                /* XmlBindingTraitParserGenerator.kt:641 */)
          49  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   35     50   
            ,
   36         -
            s if s.matches("value") /* value aws.protocoltests.restxml#EnumKeyMap$value */ =>  {
   37         -
                v = Some(
   38         -
                    Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   39         -
                        ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   40         -
                        .into()
   41         -
                    )
   42         -
                    ?
   43         -
                )
   44         -
            }
          51  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("value") /* value aws.protocoltests.restxml#EnumKeyMap$value */ =>  {
          52  +
                /* XmlBindingTraitParserGenerator.kt:646 */v = Some(
          53  +
                    /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          54  +
                        /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          55  +
                        /* XmlBindingTraitParserGenerator.kt:748 */.into()
          56  +
                    /* XmlBindingTraitParserGenerator.kt:729 */)
          57  +
                    /* XmlBindingTraitParserGenerator.kt:402 */?
          58  +
                /* XmlBindingTraitParserGenerator.kt:646 */)
          59  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   45     60   
            ,
   46         -
            _ => {}
   47         -
        }
          61  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
          62  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
          63  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   48     64   
    }
          65  +
    /* XmlBindingTraitParserGenerator.kt:652 */
   49     66   
    let k = k.ok_or_else(|| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing key map entry"))?;
   50     67   
    let v = v.ok_or_else(|| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing value map entry"))?;
   51     68   
    out.insert(k, v);
   52     69   
    Ok(())
          70  +
    /* XmlBindingTraitParserGenerator.kt:628 */
   53     71   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_enum_keys.rs

@@ -1,1 +76,109 @@
    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_enum_keys_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::enum_keys::EnumKeysOutput, crate::operation::enum_keys::EnumKeysError> {
          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::enum_keys::EnumKeysError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:185 */
   12     18   
    Err(crate::operation::enum_keys::EnumKeysError::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_enum_keys_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::enum_keys::EnumKeysOutput, crate::operation::enum_keys::EnumKeysError> {
          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::enum_keys::builders::EnumKeysOutputBuilder::default();
          36  +
        /* ProtocolParserGenerator.kt:247 */
   24     37   
        output = crate::protocol_serde::shape_enum_keys::de_enum_keys(_response_body, output)
   25     38   
            .map_err(crate::operation::enum_keys::EnumKeysError::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_enum_keys_op_input(
   31     48   
    input: &crate::operation::enum_keys::EnumKeysInput,
   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("XmlMapEnumKeys");
          58  +
        /* XmlBindingTraitSerializerGenerator.kt:440 */
   38     59   
        crate::protocol_serde::shape_enum_keys_input::ser_enum_keys_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_enum_keys(
   45     71   
    inp: &[u8],
   46     72   
    mut builder: crate::operation::enum_keys::builders::EnumKeysOutputBuilder,
   47     73   
) -> std::result::Result<crate::operation::enum_keys::builders::EnumKeysOutputBuilder, ::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("XmlMapEnumKeys") {
   55     83   
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
   56     84   
            "encountered invalid XML root: expected XmlMapEnumKeys but got {:?}. This is likely a bug in the SDK.",
   57     85   
            start_el
   58     86   
        )));
   59     87   
    }
          88  +
    /* XmlBindingTraitParserGenerator.kt:352 */
   60     89   
    while let Some(mut tag) = decoder.next_tag() {
          90  +
        /* XmlBindingTraitParserGenerator.kt:353 */
   61     91   
        match tag.start_el() {
   62         -
            s if s.matches("data") /* data aws.protocoltests.restxml.synthetic#EnumKeysOutput$data */ =>  {
   63         -
                let var_1 =
   64         -
                    Some(
   65         -
                        crate::protocol_serde::shape_enum_key_map::de_enum_key_map(&mut tag)
   66         -
                        ?
   67         -
                    )
   68         -
                ;
   69         -
                builder = builder.set_data(var_1);
   70         -
            }
          92  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("data") /* data aws.protocoltests.restxml.synthetic#EnumKeysOutput$data */ =>  {
          93  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_1 =
          94  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
          95  +
                        /* XmlBindingTraitParserGenerator.kt:600 */crate::protocol_serde::shape_enum_key_map::de_enum_key_map(&mut tag)
          96  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
          97  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
          98  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
          99  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_data(var_1);
         100  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   71    101   
            ,
   72         -
            _ => {}
   73         -
        }
         102  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
         103  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
         104  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   74    105   
    }
         106  +
    /* XmlBindingTraitParserGenerator.kt:213 */
   75    107   
    Ok(builder)
         108  +
    /* XmlBindingTraitParserGenerator.kt:189 */
   76    109   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_enum_keys_input.rs

@@ -1,1 +24,48 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitSerializerGenerator.kt:427 */
    2      3   
pub fn ser_enum_keys_input_input_input(
    3      4   
    input: &crate::operation::enum_keys::EnumKeysInput,
    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.data {
          13  +
        /* XmlBindingTraitSerializerGenerator.kt:377 */
    9     14   
        let mut inner_writer = scope.start_el("data").finish();
          15  +
        /* XmlBindingTraitSerializerGenerator.kt:512 */
   10     16   
        for (key_2, value_3) in var_1 {
          17  +
            /* XmlBindingTraitSerializerGenerator.kt:513 */
   11     18   
            let mut entry = inner_writer.start_el("entry").finish();
          19  +
            /* SerializerUtil.kt:42 */
   12     20   
            {
          21  +
                /* XmlBindingTraitSerializerGenerator.kt:359 */
   13     22   
                let mut inner_writer = entry.start_el("key").finish();
   14         -
                inner_writer.data(key_2.as_str());
          23  +
                /* XmlBindingTraitSerializerGenerator.kt:360 */
          24  +
                inner_writer.data(
          25  +
                    /* XmlBindingTraitSerializerGenerator.kt:321 */ key_2.as_str(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          26  +
                );
          27  +
                /* SerializerUtil.kt:42 */
   15     28   
            }
          29  +
            /* SerializerUtil.kt:42 */
   16     30   
            {
          31  +
                /* XmlBindingTraitSerializerGenerator.kt:359 */
   17     32   
                let mut inner_writer = entry.start_el("value").finish();
   18         -
                inner_writer.data(value_3.as_str());
          33  +
                /* XmlBindingTraitSerializerGenerator.kt:360 */
          34  +
                inner_writer.data(
          35  +
                    /* XmlBindingTraitSerializerGenerator.kt:321 */ value_3.as_str(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          36  +
                );
          37  +
                /* SerializerUtil.kt:42 */
   19     38   
            }
          39  +
            /* XmlBindingTraitSerializerGenerator.kt:512 */
   20     40   
        }
          41  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   21     42   
    }
          43  +
    /* XmlBindingTraitSerializerGenerator.kt:304 */
   22     44   
    scope.finish();
          45  +
    /* XmlBindingTraitSerializerGenerator.kt:437 */
   23     46   
    Ok(())
          47  +
    /* XmlBindingTraitSerializerGenerator.kt:427 */
   24     48   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_primitive_int_op_xml.rs

@@ -1,1 +102,135 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::unnecessary_wraps)]
           4  +
/* ProtocolParserGenerator.kt:99 */
    3      5   
pub fn de_primitive_int_op_xml_http_error(
    4      6   
    _response_status: u16,
    5      7   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
    6      8   
    _response_body: &[u8],
    7      9   
) -> std::result::Result<
    8     10   
    crate::operation::primitive_int_op_xml::PrimitiveIntOpXmlOutput,
    9     11   
    crate::operation::primitive_int_op_xml::PrimitiveIntOpXmlError,
   10     12   
> {
          13  +
    /* RustType.kt:516 */
   11     14   
    #[allow(unused_mut)]
          15  +
    /* ProtocolParserGenerator.kt:106 */
   12     16   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   13     17   
        .map_err(crate::operation::primitive_int_op_xml::PrimitiveIntOpXmlError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:185 */
   15     21   
    Err(crate::operation::primitive_int_op_xml::PrimitiveIntOpXmlError::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_primitive_int_op_xml_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::primitive_int_op_xml::PrimitiveIntOpXmlOutput,
   25     34   
    crate::operation::primitive_int_op_xml::PrimitiveIntOpXmlError,
   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::primitive_int_op_xml::builders::PrimitiveIntOpXmlOutputBuilder::default();
          42  +
        /* ProtocolParserGenerator.kt:247 */
   30     43   
        output = crate::protocol_serde::shape_primitive_int_op_xml::de_primitive_int_op_xml(_response_body, output)
   31     44   
            .map_err(crate::operation::primitive_int_op_xml::PrimitiveIntOpXmlError::unhandled)?;
          45  +
        /* ClientBuilderInstantiator.kt:56 */
   32     46   
        output.build()
          47  +
        /* ProtocolParserGenerator.kt:77 */
   33     48   
    })
          49  +
    /* ProtocolParserGenerator.kt:71 */
   34     50   
}
   35     51   
          52  +
/* XmlBindingTraitSerializerGenerator.kt:116 */
   36     53   
pub fn ser_primitive_int_op_xml_op_input(
   37     54   
    input: &crate::operation::primitive_int_op_xml::PrimitiveIntOpXmlInput,
   38     55   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          56  +
    /* XmlBindingTraitSerializerGenerator.kt:120 */
   39     57   
    let mut out = String::new();
          58  +
    /* XmlBindingTraitSerializerGenerator.kt:124 */
   40     59   
    {
          60  +
        /* XmlBindingTraitSerializerGenerator.kt:125 */
   41     61   
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
   42     62   
        #[allow(unused_mut)]
   43     63   
        let mut root = writer.start_el("PrimitiveIntDocument");
          64  +
        /* XmlBindingTraitSerializerGenerator.kt:440 */
   44     65   
        crate::protocol_serde::shape_primitive_int_op_xml_input::ser_primitive_int_op_xml_input_input_input(input, root)?
          66  +
        /* XmlBindingTraitSerializerGenerator.kt:124 */
   45     67   
    }
          68  +
    /* XmlBindingTraitSerializerGenerator.kt:137 */
   46     69   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
          70  +
    /* XmlBindingTraitSerializerGenerator.kt:116 */
   47     71   
}
   48     72   
          73  +
/* RustType.kt:516 */
   49     74   
#[allow(unused_mut)]
          75  +
/* XmlBindingTraitParserGenerator.kt:189 */
   50     76   
pub fn de_primitive_int_op_xml(
   51     77   
    inp: &[u8],
   52     78   
    mut builder: crate::operation::primitive_int_op_xml::builders::PrimitiveIntOpXmlOutputBuilder,
   53     79   
) -> std::result::Result<crate::operation::primitive_int_op_xml::builders::PrimitiveIntOpXmlOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
          80  +
    /* XmlBindingTraitParserGenerator.kt:194 */
   54     81   
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
   55     82   
   56     83   
    #[allow(unused_mut)]
   57     84   
    let mut decoder = doc.root_element()?;
   58     85   
    #[allow(unused_variables)]
   59     86   
    let start_el = decoder.start_el();
          87  +
    /* RestXmlParserGenerator.kt:36 */
   60     88   
    if !start_el.matches("PrimitiveIntDocument") {
   61     89   
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
   62     90   
            "encountered invalid XML root: expected PrimitiveIntDocument but got {:?}. This is likely a bug in the SDK.",
   63     91   
            start_el
   64     92   
        )));
   65     93   
    }
          94  +
    /* XmlBindingTraitParserGenerator.kt:352 */
   66     95   
    while let Some(mut tag) = decoder.next_tag() {
          96  +
        /* XmlBindingTraitParserGenerator.kt:353 */
   67     97   
        match tag.start_el() {
   68         -
            s if s.matches("value") /* value aws.protocoltests.restxml.synthetic#PrimitiveIntOpXmlOutput$value */ =>  {
   69         -
                let var_1 =
   70         -
                    Some(
   71         -
                         {
   72         -
                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
   73         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   74         -
                            )
   75         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `aws.protocoltests.restxml#PrimitiveInt`)"))
   76         -
                        }
   77         -
                        ?
   78         -
                    )
   79         -
                ;
   80         -
                builder = builder.set_value(var_1);
   81         -
            }
          98  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("value") /* value aws.protocoltests.restxml.synthetic#PrimitiveIntOpXmlOutput$value */ =>  {
          99  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_1 =
         100  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         101  +
                        /* XmlBindingTraitParserGenerator.kt:676 */ {
         102  +
                            /* XmlBindingTraitParserGenerator.kt:677 */<i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
         103  +
                                /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         104  +
                            /* XmlBindingTraitParserGenerator.kt:677 */)
         105  +
                            /* XmlBindingTraitParserGenerator.kt:685 */.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `aws.protocoltests.restxml#PrimitiveInt`)"))
         106  +
                        /* XmlBindingTraitParserGenerator.kt:676 */}
         107  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         108  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         109  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         110  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_value(var_1);
         111  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   82    112   
            ,
   83         -
            s if s.matches("defaultedValue") /* defaultedValue aws.protocoltests.restxml.synthetic#PrimitiveIntOpXmlOutput$defaultedValue */ =>  {
   84         -
                let var_2 =
   85         -
                    Some(
   86         -
                         {
   87         -
                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
   88         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   89         -
                            )
   90         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `aws.protocoltests.restxml#PrimitiveInt`)"))
   91         -
                        }
   92         -
                        ?
   93         -
                    )
   94         -
                ;
   95         -
                builder = builder.set_defaulted_value(var_2);
   96         -
            }
         113  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("defaultedValue") /* defaultedValue aws.protocoltests.restxml.synthetic#PrimitiveIntOpXmlOutput$defaultedValue */ =>  {
         114  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_2 =
         115  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         116  +
                        /* XmlBindingTraitParserGenerator.kt:676 */ {
         117  +
                            /* XmlBindingTraitParserGenerator.kt:677 */<i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
         118  +
                                /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         119  +
                            /* XmlBindingTraitParserGenerator.kt:677 */)
         120  +
                            /* XmlBindingTraitParserGenerator.kt:685 */.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `aws.protocoltests.restxml#PrimitiveInt`)"))
         121  +
                        /* XmlBindingTraitParserGenerator.kt:676 */}
         122  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         123  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         124  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         125  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_defaulted_value(var_2);
         126  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   97    127   
            ,
   98         -
            _ => {}
   99         -
        }
         128  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
         129  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
         130  +
        /* XmlBindingTraitParserGenerator.kt:352 */
  100    131   
    }
         132  +
    /* XmlBindingTraitParserGenerator.kt:213 */
  101    133   
    Ok(builder)
         134  +
    /* XmlBindingTraitParserGenerator.kt:189 */
  102    135   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_primitive_int_op_xml_input.rs

@@ -1,1 +18,38 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitSerializerGenerator.kt:427 */
    2      3   
pub fn ser_primitive_int_op_xml_input_input_input(
    3      4   
    input: &crate::operation::primitive_int_op_xml::PrimitiveIntOpXmlInput,
    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.defaulted_value {
          13  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
    9     14   
        let mut inner_writer = scope.start_el("defaultedValue").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.value {
          24  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
   13     25   
        let mut inner_writer = scope.start_el("value").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:304 */
   16     34   
    scope.finish();
          35  +
    /* XmlBindingTraitSerializerGenerator.kt:437 */
   17     36   
    Ok(())
          37  +
    /* XmlBindingTraitSerializerGenerator.kt:427 */
   18     38   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_required_member.rs

@@ -1,1 +81,114 @@
    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_required_member_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::required_member::RequiredMemberOutput, crate::operation::required_member::RequiredMemberError> {
          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::required_member::RequiredMemberError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:185 */
   12     18   
    Err(crate::operation::required_member::RequiredMemberError::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_required_member_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::required_member::RequiredMemberOutput, crate::operation::required_member::RequiredMemberError> {
          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::required_member::builders::RequiredMemberOutputBuilder::default();
          36  +
        /* ProtocolParserGenerator.kt:247 */
   24     37   
        output = crate::protocol_serde::shape_required_member::de_required_member(_response_body, output)
   25     38   
            .map_err(crate::operation::required_member::RequiredMemberError::unhandled)?;
          39  +
        /* ClientBuilderInstantiator.kt:46 */
   26     40   
        crate::serde_util::required_member_output_output_correct_errors(output)
   27     41   
            .build()
   28     42   
            .map_err(crate::operation::required_member::RequiredMemberError::unhandled)?
          43  +
        /* ProtocolParserGenerator.kt:77 */
   29     44   
    })
          45  +
    /* ProtocolParserGenerator.kt:71 */
   30     46   
}
   31     47   
          48  +
/* XmlBindingTraitSerializerGenerator.kt:116 */
   32     49   
pub fn ser_required_member_op_input(
   33     50   
    input: &crate::operation::required_member::RequiredMemberInput,
   34     51   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          52  +
    /* XmlBindingTraitSerializerGenerator.kt:120 */
   35     53   
    let mut out = String::new();
          54  +
    /* XmlBindingTraitSerializerGenerator.kt:124 */
   36     55   
    {
          56  +
        /* XmlBindingTraitSerializerGenerator.kt:125 */
   37     57   
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
   38     58   
        #[allow(unused_mut)]
   39     59   
        let mut root = writer.start_el("RequiredMemberInputOutput");
          60  +
        /* XmlBindingTraitSerializerGenerator.kt:440 */
   40     61   
        crate::protocol_serde::shape_required_member_input::ser_required_member_input_input_input(input, root)?
          62  +
        /* XmlBindingTraitSerializerGenerator.kt:124 */
   41     63   
    }
          64  +
    /* XmlBindingTraitSerializerGenerator.kt:137 */
   42     65   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
          66  +
    /* XmlBindingTraitSerializerGenerator.kt:116 */
   43     67   
}
   44     68   
          69  +
/* RustType.kt:516 */
   45     70   
#[allow(unused_mut)]
          71  +
/* XmlBindingTraitParserGenerator.kt:189 */
   46     72   
pub fn de_required_member(
   47     73   
    inp: &[u8],
   48     74   
    mut builder: crate::operation::required_member::builders::RequiredMemberOutputBuilder,
   49     75   
) -> std::result::Result<crate::operation::required_member::builders::RequiredMemberOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
          76  +
    /* XmlBindingTraitParserGenerator.kt:194 */
   50     77   
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
   51     78   
   52     79   
    #[allow(unused_mut)]
   53     80   
    let mut decoder = doc.root_element()?;
   54     81   
    #[allow(unused_variables)]
   55     82   
    let start_el = decoder.start_el();
          83  +
    /* RestXmlParserGenerator.kt:36 */
   56     84   
    if !start_el.matches("RequiredMemberInputOutput") {
   57     85   
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
   58     86   
            "encountered invalid XML root: expected RequiredMemberInputOutput but got {:?}. This is likely a bug in the SDK.",
   59     87   
            start_el
   60     88   
        )));
   61     89   
    }
          90  +
    /* XmlBindingTraitParserGenerator.kt:352 */
   62     91   
    while let Some(mut tag) = decoder.next_tag() {
          92  +
        /* XmlBindingTraitParserGenerator.kt:353 */
   63     93   
        match tag.start_el() {
   64         -
            s if s.matches("requiredString") /* requiredString aws.protocoltests.restxml.synthetic#RequiredMemberOutput$requiredString */ =>  {
   65         -
                let var_1 =
   66         -
                    Some(
   67         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   68         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   69         -
                            .into()
   70         -
                        )
   71         -
                        ?
   72         -
                    )
   73         -
                ;
   74         -
                builder = builder.set_required_string(var_1);
   75         -
            }
          94  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("requiredString") /* requiredString aws.protocoltests.restxml.synthetic#RequiredMemberOutput$requiredString */ =>  {
          95  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_1 =
          96  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
          97  +
                        /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          98  +
                            /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          99  +
                            /* XmlBindingTraitParserGenerator.kt:748 */.into()
         100  +
                        /* XmlBindingTraitParserGenerator.kt:729 */)
         101  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         102  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         103  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         104  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_required_string(var_1);
         105  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   76    106   
            ,
   77         -
            _ => {}
   78         -
        }
         107  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
         108  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
         109  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   79    110   
    }
         111  +
    /* XmlBindingTraitParserGenerator.kt:213 */
   80    112   
    Ok(builder)
         113  +
    /* XmlBindingTraitParserGenerator.kt:189 */
   81    114   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_required_member_input.rs

@@ -1,1 +14,26 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitSerializerGenerator.kt:427 */
    2      3   
pub fn ser_required_member_input_input_input(
    3      4   
    input: &crate::operation::required_member::RequiredMemberInput,
    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.required_string {
          13  +
        /* XmlBindingTraitSerializerGenerator.kt:359 */
    9     14   
        let mut inner_writer = scope.start_el("requiredString").finish();
   10         -
        inner_writer.data(var_1.as_str());
          15  +
        /* XmlBindingTraitSerializerGenerator.kt:360 */
          16  +
        inner_writer.data(
          17  +
            /* XmlBindingTraitSerializerGenerator.kt:321 */ var_1.as_str(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          18  +
        );
          19  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   11     20   
    }
          21  +
    /* XmlBindingTraitSerializerGenerator.kt:304 */
   12     22   
    scope.finish();
          23  +
    /* XmlBindingTraitSerializerGenerator.kt:437 */
   13     24   
    Ok(())
          25  +
    /* XmlBindingTraitSerializerGenerator.kt:427 */
   14     26   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_string_header.rs

@@ -1,1 +34,51 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::unnecessary_wraps)]
           4  +
/* ProtocolParserGenerator.kt:99 */
    3      5   
pub fn de_string_header_http_error(
    4      6   
    _response_status: u16,
    5      7   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
    6      8   
    _response_body: &[u8],
    7      9   
) -> std::result::Result<crate::operation::string_header::StringHeaderOutput, crate::operation::string_header::StringHeaderError> {
          10  +
    /* RustType.kt:516 */
    8     11   
    #[allow(unused_mut)]
          12  +
    /* ProtocolParserGenerator.kt:106 */
    9     13   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   10     14   
        .map_err(crate::operation::string_header::StringHeaderError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:185 */
   12     18   
    Err(crate::operation::string_header::StringHeaderError::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_string_header_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::string_header::StringHeaderOutput, crate::operation::string_header::StringHeaderError> {
          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::string_header::builders::StringHeaderOutputBuilder::default();
          36  +
        /* ProtocolParserGenerator.kt:267 */
   24     37   
        output = output.set_enum_header(
   25         -
            crate::protocol_serde::shape_string_header_output::de_enum_header_header(_response_headers)
   26         -
                .map_err(|_| crate::operation::string_header::StringHeaderError::unhandled("Failed to parse enumHeader from header `x-enum"))?,
   27         -
        );
          38  +
            /* ProtocolParserGenerator.kt:302 */crate::protocol_serde::shape_string_header_output::de_enum_header_header(_response_headers)
          39  +
                                        .map_err(|_|crate::operation::string_header::StringHeaderError::unhandled("Failed to parse enumHeader from header `x-enum"))?
          40  +
        /* ProtocolParserGenerator.kt:267 */);
          41  +
        /* ProtocolParserGenerator.kt:267 */
   28     42   
        output = output.set_field(
   29         -
            crate::protocol_serde::shape_string_header_output::de_field_header(_response_headers)
   30         -
                .map_err(|_| crate::operation::string_header::StringHeaderError::unhandled("Failed to parse field from header `x-field"))?,
   31         -
        );
          43  +
            /* ProtocolParserGenerator.kt:302 */crate::protocol_serde::shape_string_header_output::de_field_header(_response_headers)
          44  +
                                        .map_err(|_|crate::operation::string_header::StringHeaderError::unhandled("Failed to parse field from header `x-field"))?
          45  +
        /* ProtocolParserGenerator.kt:267 */);
          46  +
        /* ClientBuilderInstantiator.kt:56 */
   32     47   
        output.build()
          48  +
        /* ProtocolParserGenerator.kt:77 */
   33     49   
    })
          50  +
    /* ProtocolParserGenerator.kt:71 */
   34     51   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_string_header_output.rs

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

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_xml_maps_flattened_nested_xml_namespace.rs

@@ -1,1 +95,128 @@
    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_maps_flattened_nested_xml_namespace_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::xml_maps_flattened_nested_xml_namespace::XmlMapsFlattenedNestedXmlNamespaceOutput,
    9     11   
    crate::operation::xml_maps_flattened_nested_xml_namespace::XmlMapsFlattenedNestedXmlNamespaceError,
   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::xml_maps_flattened_nested_xml_namespace::XmlMapsFlattenedNestedXmlNamespaceError::unhandled)?;
          18  +
    /* ProtocolParserGenerator.kt:120 */
   14     19   
    let generic = generic_builder.build();
          20  +
    /* ProtocolParserGenerator.kt:185 */
   15     21   
    Err(crate::operation::xml_maps_flattened_nested_xml_namespace::XmlMapsFlattenedNestedXmlNamespaceError::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_xml_maps_flattened_nested_xml_namespace_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::xml_maps_flattened_nested_xml_namespace::XmlMapsFlattenedNestedXmlNamespaceOutput,
   25     34   
    crate::operation::xml_maps_flattened_nested_xml_namespace::XmlMapsFlattenedNestedXmlNamespaceError,
   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 =
   30     42   
            crate::operation::xml_maps_flattened_nested_xml_namespace::builders::XmlMapsFlattenedNestedXmlNamespaceOutputBuilder::default();
          43  +
        /* ProtocolParserGenerator.kt:247 */
   31     44   
        output =
   32     45   
            crate::protocol_serde::shape_xml_maps_flattened_nested_xml_namespace::de_xml_maps_flattened_nested_xml_namespace(_response_body, output)
   33     46   
                .map_err(crate::operation::xml_maps_flattened_nested_xml_namespace::XmlMapsFlattenedNestedXmlNamespaceError::unhandled)?;
          47  +
        /* ClientBuilderInstantiator.kt:56 */
   34     48   
        output.build()
          49  +
        /* ProtocolParserGenerator.kt:77 */
   35     50   
    })
          51  +
    /* ProtocolParserGenerator.kt:71 */
   36     52   
}
   37     53   
          54  +
/* XmlBindingTraitSerializerGenerator.kt:116 */
   38     55   
pub fn ser_xml_maps_flattened_nested_xml_namespace_op_input(
   39     56   
    input: &crate::operation::xml_maps_flattened_nested_xml_namespace::XmlMapsFlattenedNestedXmlNamespaceInput,
   40     57   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          58  +
    /* XmlBindingTraitSerializerGenerator.kt:120 */
   41     59   
    let mut out = String::new();
          60  +
    /* XmlBindingTraitSerializerGenerator.kt:124 */
   42     61   
    {
          62  +
        /* XmlBindingTraitSerializerGenerator.kt:125 */
   43     63   
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
   44     64   
        #[allow(unused_mut)]
   45     65   
        let mut root = writer
   46     66   
            .start_el("XmlMapsFlattenedNestedXmlNamespaceInputOutput")
   47     67   
            .write_ns("http://aoo.com", None);
          68  +
        /* XmlBindingTraitSerializerGenerator.kt:440 */
   48     69   
        crate::protocol_serde::shape_xml_maps_flattened_nested_xml_namespace_input::ser_xml_maps_flattened_nested_xml_namespace_input_input_input(
   49     70   
            input, root,
   50     71   
        )?
          72  +
        /* XmlBindingTraitSerializerGenerator.kt:124 */
   51     73   
    }
          74  +
    /* XmlBindingTraitSerializerGenerator.kt:137 */
   52     75   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
          76  +
    /* XmlBindingTraitSerializerGenerator.kt:116 */
   53     77   
}
   54     78   
          79  +
/* RustType.kt:516 */
   55     80   
#[allow(unused_mut)]
          81  +
/* XmlBindingTraitParserGenerator.kt:189 */
   56     82   
pub fn de_xml_maps_flattened_nested_xml_namespace(
   57     83   
    inp: &[u8],
   58     84   
    mut builder: crate::operation::xml_maps_flattened_nested_xml_namespace::builders::XmlMapsFlattenedNestedXmlNamespaceOutputBuilder,
   59     85   
) -> std::result::Result<
   60     86   
    crate::operation::xml_maps_flattened_nested_xml_namespace::builders::XmlMapsFlattenedNestedXmlNamespaceOutputBuilder,
   61     87   
    ::aws_smithy_xml::decode::XmlDecodeError,
   62     88   
> {
          89  +
    /* XmlBindingTraitParserGenerator.kt:194 */
   63     90   
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
   64     91   
   65     92   
    #[allow(unused_mut)]
   66     93   
    let mut decoder = doc.root_element()?;
   67     94   
    #[allow(unused_variables)]
   68     95   
    let start_el = decoder.start_el();
          96  +
    /* RestXmlParserGenerator.kt:36 */
   69     97   
    if !start_el.matches("XmlMapsFlattenedNestedXmlNamespaceInputOutput") {
   70     98   
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
   71     99   
            "encountered invalid XML root: expected XmlMapsFlattenedNestedXmlNamespaceInputOutput but got {:?}. This is likely a bug in the SDK.",
   72    100   
            start_el
   73    101   
        )));
   74    102   
    }
         103  +
    /* XmlBindingTraitParserGenerator.kt:352 */
   75    104   
    while let Some(mut tag) = decoder.next_tag() {
         105  +
        /* XmlBindingTraitParserGenerator.kt:353 */
   76    106   
        match tag.start_el() {
   77         -
            s if s.matches("myMap") /* myMap aws.protocoltests.restxml.synthetic#XmlMapsFlattenedNestedXmlNamespaceOutput$myMap */ =>  {
   78         -
                let var_1 =
   79         -
                    Some(
   80         -
                        Result::<::std::collections::HashMap::<::std::string::String, ::std::collections::HashMap::<::std::string::String, ::std::string::String>>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
   81         -
                            let mut map_2 = builder.my_map.take().unwrap_or_default();
         107  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("myMap") /* myMap aws.protocoltests.restxml.synthetic#XmlMapsFlattenedNestedXmlNamespaceOutput$myMap */ =>  {
         108  +
                /* XmlBindingTraitParserGenerator.kt:329 */let var_1 =
         109  +
                    /* XmlBindingTraitParserGenerator.kt:372 */Some(
         110  +
                        /* XmlBindingTraitParserGenerator.kt:609 */Result::<::std::collections::HashMap::<::std::string::String, ::std::collections::HashMap::<::std::string::String, ::std::string::String>>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
         111  +
                            /* XmlBindingTraitParserGenerator.kt:611 */let mut map_2 = builder.my_map.take().unwrap_or_default();
   82    112   
                                            crate::protocol_serde::shape_xml_maps_nested_namespace_input_output_map::de_xml_maps_nested_namespace_input_output_map_entry(&mut tag, &mut map_2)?;
   83    113   
                                            map_2
   84         -
                        })
   85         -
                        ?
   86         -
                    )
   87         -
                ;
   88         -
                builder = builder.set_my_map(var_1);
   89         -
            }
         114  +
                        /* XmlBindingTraitParserGenerator.kt:609 */})
         115  +
                        /* XmlBindingTraitParserGenerator.kt:402 */?
         116  +
                    /* XmlBindingTraitParserGenerator.kt:372 */)
         117  +
                /* XmlBindingTraitParserGenerator.kt:329 */;
         118  +
                /* XmlBindingTraitParserGenerator.kt:336 */builder = builder.set_my_map(var_1);
         119  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   90    120   
            ,
   91         -
            _ => {}
   92         -
        }
         121  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
         122  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
         123  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   93    124   
    }
         125  +
    /* XmlBindingTraitParserGenerator.kt:213 */
   94    126   
    Ok(builder)
         127  +
    /* XmlBindingTraitParserGenerator.kt:189 */
   95    128   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_xml_maps_flattened_nested_xml_namespace_input.rs

@@ -1,1 +33,70 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitSerializerGenerator.kt:427 */
    2      3   
pub fn ser_xml_maps_flattened_nested_xml_namespace_input_input_input(
    3      4   
    input: &crate::operation::xml_maps_flattened_nested_xml_namespace::XmlMapsFlattenedNestedXmlNamespaceInput,
    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.my_map {
          13  +
        /* XmlBindingTraitSerializerGenerator.kt:512 */
    9     14   
        for (key_2, value_3) in var_1 {
          15  +
            /* XmlBindingTraitSerializerGenerator.kt:513 */
   10     16   
            let mut entry = scope.start_el("myMap").finish();
          17  +
            /* SerializerUtil.kt:42 */
   11     18   
            {
          19  +
                /* XmlBindingTraitSerializerGenerator.kt:359 */
   12     20   
                let mut inner_writer = entry.start_el("yek").write_ns("http://doo.com", None).finish();
   13         -
                inner_writer.data(key_2.as_str());
          21  +
                /* XmlBindingTraitSerializerGenerator.kt:360 */
          22  +
                inner_writer.data(
          23  +
                    /* XmlBindingTraitSerializerGenerator.kt:321 */ key_2.as_str(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          24  +
                );
          25  +
                /* SerializerUtil.kt:42 */
   14     26   
            }
          27  +
            /* SerializerUtil.kt:42 */
   15     28   
            {
          29  +
                /* XmlBindingTraitSerializerGenerator.kt:377 */
   16     30   
                let mut inner_writer = entry.start_el("eulav").write_ns("http://eoo.com", None).finish();
          31  +
                /* XmlBindingTraitSerializerGenerator.kt:512 */
   17     32   
                for (key_4, value_5) in value_3 {
          33  +
                    /* XmlBindingTraitSerializerGenerator.kt:513 */
   18     34   
                    let mut entry = inner_writer.start_el("entry").finish();
          35  +
                    /* SerializerUtil.kt:42 */
   19     36   
                    {
          37  +
                        /* XmlBindingTraitSerializerGenerator.kt:359 */
   20     38   
                        let mut inner_writer = entry.start_el("K").write_ns("http://goo.com", None).finish();
   21         -
                        inner_writer.data(key_4.as_str());
          39  +
                        /* XmlBindingTraitSerializerGenerator.kt:360 */
          40  +
                        inner_writer.data(
          41  +
                            /* XmlBindingTraitSerializerGenerator.kt:321 */
          42  +
                            key_4.as_str(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          43  +
                        );
          44  +
                        /* SerializerUtil.kt:42 */
   22     45   
                    }
          46  +
                    /* SerializerUtil.kt:42 */
   23     47   
                    {
          48  +
                        /* XmlBindingTraitSerializerGenerator.kt:359 */
   24     49   
                        let mut inner_writer = entry.start_el("V").write_ns("http://hoo.com", None).finish();
   25         -
                        inner_writer.data(value_5.as_str());
          50  +
                        /* XmlBindingTraitSerializerGenerator.kt:360 */
          51  +
                        inner_writer.data(
          52  +
                            /* XmlBindingTraitSerializerGenerator.kt:321 */
          53  +
                            value_5.as_str(), /* XmlBindingTraitSerializerGenerator.kt:360 */
          54  +
                        );
          55  +
                        /* SerializerUtil.kt:42 */
   26     56   
                    }
          57  +
                    /* XmlBindingTraitSerializerGenerator.kt:512 */
   27     58   
                }
          59  +
                /* SerializerUtil.kt:42 */
   28     60   
            }
          61  +
            /* XmlBindingTraitSerializerGenerator.kt:512 */
   29     62   
        }
          63  +
        /* XmlBindingTraitSerializerGenerator.kt:555 */
   30     64   
    }
          65  +
    /* XmlBindingTraitSerializerGenerator.kt:304 */
   31     66   
    scope.finish();
          67  +
    /* XmlBindingTraitSerializerGenerator.kt:437 */
   32     68   
    Ok(())
          69  +
    /* XmlBindingTraitSerializerGenerator.kt:427 */
   33     70   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_xml_maps_nested_namespace_input_output_map.rs

@@ -1,1 +34,42 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitParserGenerator.kt:628 */
    2      3   
pub fn de_xml_maps_nested_namespace_input_output_map_entry(
    3      4   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
    4      5   
    out: &mut ::std::collections::HashMap<::std::string::String, ::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_xml::decode::XmlDecodeError> {
           7  +
    /* XmlBindingTraitParserGenerator.kt:634 */
    6      8   
    let mut k: Option<::std::string::String> = None;
           9  +
    /* XmlBindingTraitParserGenerator.kt:635 */
    7     10   
    let mut v: Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> = None;
          11  +
    /* XmlBindingTraitParserGenerator.kt:352 */
    8     12   
    while let Some(mut tag) = decoder.next_tag() {
          13  +
        /* XmlBindingTraitParserGenerator.kt:353 */
    9     14   
        match tag.start_el() {
   10         -
            s if s.matches("yek") /* key aws.protocoltests.restxml#XmlMapsNestedNamespaceInputOutputMap$key */ =>  {
   11         -
                k = Some(
   12         -
                    Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   13         -
                        ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   14         -
                        .into()
   15         -
                    )
   16         -
                    ?
   17         -
                )
   18         -
            }
          15  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("yek") /* key aws.protocoltests.restxml#XmlMapsNestedNamespaceInputOutputMap$key */ =>  {
          16  +
                /* XmlBindingTraitParserGenerator.kt:641 */k = Some(
          17  +
                    /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          18  +
                        /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          19  +
                        /* XmlBindingTraitParserGenerator.kt:748 */.into()
          20  +
                    /* XmlBindingTraitParserGenerator.kt:729 */)
          21  +
                    /* XmlBindingTraitParserGenerator.kt:402 */?
          22  +
                /* XmlBindingTraitParserGenerator.kt:641 */)
          23  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   19     24   
            ,
   20         -
            s if s.matches("eulav") /* value aws.protocoltests.restxml#XmlMapsNestedNamespaceInputOutputMap$value */ =>  {
   21         -
                v = Some(
   22         -
                    crate::protocol_serde::shape_xml_maps_nested_nested_namespace_input_output_map::de_xml_maps_nested_nested_namespace_input_output_map(&mut tag)
   23         -
                    ?
   24         -
                )
   25         -
            }
          25  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("eulav") /* value aws.protocoltests.restxml#XmlMapsNestedNamespaceInputOutputMap$value */ =>  {
          26  +
                /* XmlBindingTraitParserGenerator.kt:646 */v = Some(
          27  +
                    /* XmlBindingTraitParserGenerator.kt:600 */crate::protocol_serde::shape_xml_maps_nested_nested_namespace_input_output_map::de_xml_maps_nested_nested_namespace_input_output_map(&mut tag)
          28  +
                    /* XmlBindingTraitParserGenerator.kt:402 */?
          29  +
                /* XmlBindingTraitParserGenerator.kt:646 */)
          30  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   26     31   
            ,
   27         -
            _ => {}
   28         -
        }
          32  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
          33  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
          34  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   29     35   
    }
          36  +
    /* XmlBindingTraitParserGenerator.kt:652 */
   30     37   
    let k = k.ok_or_else(|| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing key map entry"))?;
   31     38   
    let v = v.ok_or_else(|| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing value map entry"))?;
   32     39   
    out.insert(k, v);
   33     40   
    Ok(())
          41  +
    /* XmlBindingTraitParserGenerator.kt:628 */
   34     42   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/protocol_serde/shape_xml_maps_nested_nested_namespace_input_output_map.rs

@@ -1,1 +52,70 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* XmlBindingTraitParserGenerator.kt:586 */
    2      3   
pub fn de_xml_maps_nested_nested_namespace_input_output_map(
    3      4   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
    4      5   
) -> ::std::result::Result<::std::collections::HashMap<::std::string::String, ::std::string::String>, ::aws_smithy_xml::decode::XmlDecodeError> {
           6  +
    /* XmlBindingTraitParserGenerator.kt:591 */
    5      7   
    let mut out = ::std::collections::HashMap::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() {
          12  +
            /* XmlBindingTraitParserGenerator.kt:593 */
    8     13   
            s if s.matches("entry") => {
          14  +
                /* XmlBindingTraitParserGenerator.kt:594 */
    9     15   
                crate::protocol_serde::shape_xml_maps_nested_nested_namespace_input_output_map::de_xml_maps_nested_nested_namespace_input_output_map_entry(&mut tag, &mut out)?;
          16  +
                /* XmlBindingTraitParserGenerator.kt:593 */
   10     17   
            }
   11         -
            _ => {}
          18  +
            /* XmlBindingTraitParserGenerator.kt:356 */ _ => {} /* XmlBindingTraitParserGenerator.kt:353 */
   12     19   
        }
          20  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   13     21   
    }
          22  +
    /* XmlBindingTraitParserGenerator.kt:597 */
   14     23   
    Ok(out)
          24  +
    /* XmlBindingTraitParserGenerator.kt:586 */
   15     25   
}
   16     26   
          27  +
/* XmlBindingTraitParserGenerator.kt:628 */
   17     28   
pub fn de_xml_maps_nested_nested_namespace_input_output_map_entry(
   18     29   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
   19     30   
    out: &mut ::std::collections::HashMap<::std::string::String, ::std::string::String>,
   20     31   
) -> ::std::result::Result<(), ::aws_smithy_xml::decode::XmlDecodeError> {
          32  +
    /* XmlBindingTraitParserGenerator.kt:634 */
   21     33   
    let mut k: Option<::std::string::String> = None;
          34  +
    /* XmlBindingTraitParserGenerator.kt:635 */
   22     35   
    let mut v: Option<::std::string::String> = None;
          36  +
    /* XmlBindingTraitParserGenerator.kt:352 */
   23     37   
    while let Some(mut tag) = decoder.next_tag() {
          38  +
        /* XmlBindingTraitParserGenerator.kt:353 */
   24     39   
        match tag.start_el() {
   25         -
            s if s.matches("K") /* key aws.protocoltests.restxml#XmlMapsNestedNestedNamespaceInputOutputMap$key */ =>  {
   26         -
                k = Some(
   27         -
                    Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   28         -
                        ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   29         -
                        .into()
   30         -
                    )
   31         -
                    ?
   32         -
                )
   33         -
            }
          40  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("K") /* key aws.protocoltests.restxml#XmlMapsNestedNestedNamespaceInputOutputMap$key */ =>  {
          41  +
                /* XmlBindingTraitParserGenerator.kt:641 */k = Some(
          42  +
                    /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          43  +
                        /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          44  +
                        /* XmlBindingTraitParserGenerator.kt:748 */.into()
          45  +
                    /* XmlBindingTraitParserGenerator.kt:729 */)
          46  +
                    /* XmlBindingTraitParserGenerator.kt:402 */?
          47  +
                /* XmlBindingTraitParserGenerator.kt:641 */)
          48  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   34     49   
            ,
   35         -
            s if s.matches("V") /* value aws.protocoltests.restxml#XmlMapsNestedNestedNamespaceInputOutputMap$value */ =>  {
   36         -
                v = Some(
   37         -
                    Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   38         -
                        ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   39         -
                        .into()
   40         -
                    )
   41         -
                    ?
   42         -
                )
   43         -
            }
          50  +
            /* XmlBindingTraitParserGenerator.kt:492 */s if s.matches("V") /* value aws.protocoltests.restxml#XmlMapsNestedNestedNamespaceInputOutputMap$value */ =>  {
          51  +
                /* XmlBindingTraitParserGenerator.kt:646 */v = Some(
          52  +
                    /* XmlBindingTraitParserGenerator.kt:729 */Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          53  +
                        /* XmlBindingTraitParserGenerator.kt:377 */::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          54  +
                        /* XmlBindingTraitParserGenerator.kt:748 */.into()
          55  +
                    /* XmlBindingTraitParserGenerator.kt:729 */)
          56  +
                    /* XmlBindingTraitParserGenerator.kt:402 */?
          57  +
                /* XmlBindingTraitParserGenerator.kt:646 */)
          58  +
            /* XmlBindingTraitParserGenerator.kt:492 */}
   44     59   
            ,
   45         -
            _ => {}
   46         -
        }
          60  +
            /* XmlBindingTraitParserGenerator.kt:356 */_ => {}
          61  +
        /* XmlBindingTraitParserGenerator.kt:353 */}
          62  +
        /* XmlBindingTraitParserGenerator.kt:352 */
   47     63   
    }
          64  +
    /* XmlBindingTraitParserGenerator.kt:652 */
   48     65   
    let k = k.ok_or_else(|| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing key map entry"))?;
   49     66   
    let v = v.ok_or_else(|| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing value map entry"))?;
   50     67   
    out.insert(k, v);
   51     68   
    Ok(())
          69  +
    /* XmlBindingTraitParserGenerator.kt:628 */
   52     70   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/serde_util.rs

@@ -1,1 +9,10 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* ErrorCorrection.kt:126 */
    2      3   
pub(crate) fn required_member_output_output_correct_errors(
    3      4   
    mut builder: crate::operation::required_member::builders::RequiredMemberOutputBuilder,
    4      5   
) -> crate::operation::required_member::builders::RequiredMemberOutputBuilder {
    5      6   
    if builder.required_string.is_none() {
    6      7   
        builder.required_string = Some(Default::default())
    7      8   
    }
    8      9   
    builder
    9     10   
}

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/types.rs

@@ -1,1 +11,15 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* CodegenDelegator.kt:255 */
    2      3   
pub use crate::types::_create_foo_input::CreateFooInput;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::types::_string_enum::StringEnum;
    5      7   
           8  +
/* RustModule.kt:172 */
    6      9   
mod _create_foo_input;
    7     10   
          11  +
/* RustModule.kt:172 */
    8     12   
mod _string_enum;
    9     13   
   10         -
/// Builders
          14  +
/// /* CodegenDelegator.kt:51 */Builders
   11     15   
pub mod builders;

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/types/_create_foo_input.rs

@@ -1,1 +22,39 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* StructureGenerator.kt:197 */
    2      3   
#[allow(missing_docs)] // documentation missing in model
           4  +
/* RustType.kt:516 */
    3      5   
#[non_exhaustive]
           6  +
/* RustType.kt:516 */
    4      7   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5         -
pub struct CreateFooInput {}
           8  +
pub /* StructureGenerator.kt:201 */ struct CreateFooInput {/* StructureGenerator.kt:201 */}
           9  +
/* ClientCodegenVisitor.kt:237 */
    6     10   
impl CreateFooInput {
    7         -
    /// Creates a new builder-style object to manufacture [`CreateFooInput`](crate::types::CreateFooInput).
          11  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`CreateFooInput`](crate::types::CreateFooInput).
          12  +
    /* BuilderGenerator.kt:175 */
    8     13   
    pub fn builder() -> crate::types::builders::CreateFooInputBuilder {
          14  +
        /* BuilderGenerator.kt:176 */
    9     15   
        crate::types::builders::CreateFooInputBuilder::default()
          16  +
        /* BuilderGenerator.kt:175 */
   10     17   
    }
          18  +
    /* ClientCodegenVisitor.kt:237 */
   11     19   
}
   12     20   
   13         -
/// A builder for [`CreateFooInput`](crate::types::CreateFooInput).
          21  +
/// /* BuilderGenerator.kt:342 */A builder for [`CreateFooInput`](crate::types::CreateFooInput).
          22  +
/* RustType.kt:516 */
   14     23   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          24  +
/* RustType.kt:516 */
   15     25   
#[non_exhaustive]
   16         -
pub struct CreateFooInputBuilder {}
          26  +
/* BuilderGenerator.kt:345 */
          27  +
pub struct CreateFooInputBuilder {/* BuilderGenerator.kt:345 */}
          28  +
/* BuilderGenerator.kt:355 */
   17     29   
impl CreateFooInputBuilder {
   18         -
    /// Consumes the builder and constructs a [`CreateFooInput`](crate::types::CreateFooInput).
          30  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`CreateFooInput`](crate::types::CreateFooInput).
          31  +
    /* BuilderGenerator.kt:253 */
   19     32   
    pub fn build(self) -> crate::types::CreateFooInput {
   20         -
        crate::types::CreateFooInput {}
          33  +
        /* BuilderGenerator.kt:477 */
          34  +
        crate::types::CreateFooInput {
          35  +
        /* BuilderGenerator.kt:477 */}
          36  +
        /* BuilderGenerator.kt:253 */
   21     37   
    }
          38  +
    /* BuilderGenerator.kt:355 */
   22     39   
}