Client Test

Client Test

rev. 32b1b3c3761061baed26023be3219639e42d7d12

Files changed:

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/protocol_serde/shape_unit_input_and_output.rs

@@ -1,0 +32,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
#[allow(clippy::unnecessary_wraps)]
    3         -
pub fn de_unit_input_and_output_http_error(
    4         -
    _response_status: u16,
    5         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
    6         -
    _response_body: &[u8],
    7         -
) -> std::result::Result<
    8         -
    crate::operation::unit_input_and_output::UnitInputAndOutputOutput,
    9         -
    crate::operation::unit_input_and_output::UnitInputAndOutputError,
   10         -
> {
   11         -
    #[allow(unused_mut)]
   12         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   13         -
        .map_err(crate::operation::unit_input_and_output::UnitInputAndOutputError::unhandled)?;
   14         -
    let generic = generic_builder.build();
   15         -
    Err(crate::operation::unit_input_and_output::UnitInputAndOutputError::generic(generic))
   16         -
}
   17         -
   18         -
#[allow(clippy::unnecessary_wraps)]
   19         -
pub fn de_unit_input_and_output_http_response(
   20         -
    _response_status: u16,
   21         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   22         -
    _response_body: &[u8],
   23         -
) -> std::result::Result<
   24         -
    crate::operation::unit_input_and_output::UnitInputAndOutputOutput,
   25         -
    crate::operation::unit_input_and_output::UnitInputAndOutputError,
   26         -
> {
   27         -
    Ok({
   28         -
        #[allow(unused_mut)]
   29         -
        let mut output = crate::operation::unit_input_and_output::builders::UnitInputAndOutputOutputBuilder::default();
   30         -
        output.build()
   31         -
    })
   32         -
}

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

@@ -1,1 +57,0 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
pub(crate) fn duplex_stream_with_initial_messages_output_output_correct_errors(
    3      3   
    mut builder: crate::operation::duplex_stream_with_initial_messages::builders::DuplexStreamWithInitialMessagesOutputBuilder,
    4      4   
) -> crate::operation::duplex_stream_with_initial_messages::builders::DuplexStreamWithInitialMessagesOutputBuilder {
    5      5   
    if builder.initial_response_member.is_none() {
    6      6   
        builder.initial_response_member = Some(Default::default())
    7      7   
    }
    8      8   
    builder
    9      9   
}
   10     10   
   11         -
pub(crate) fn operation_with_nested_structure_output_output_correct_errors(
   12         -
    mut builder: crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureOutputBuilder,
   13         -
) -> crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureOutputBuilder {
   14         -
    if builder.dialog.is_none() {
   15         -
        builder.dialog = {
   16         -
            let builder = crate::types::builders::DialogBuilder::default();
   17         -
            Some(builder.build())
   18         -
        }
   19         -
    }
   20         -
    builder
   21         -
}
   22         -
   23     11   
pub(crate) fn output_stream_with_initial_response_output_output_correct_errors(
   24     12   
    mut builder: crate::operation::output_stream_with_initial_response::builders::OutputStreamWithInitialResponseOutputBuilder,
   25     13   
) -> crate::operation::output_stream_with_initial_response::builders::OutputStreamWithInitialResponseOutputBuilder {
   26     14   
    if builder.initial_response_member.is_none() {
   27     15   
        builder.initial_response_member = Some(Default::default())
   28     16   
    }
   29     17   
    builder
   30     18   
}
   31         -
   32         -
pub(crate) fn post_player_action_output_output_correct_errors(
   33         -
    mut builder: crate::operation::post_player_action::builders::PostPlayerActionOutputBuilder,
   34         -
) -> crate::operation::post_player_action::builders::PostPlayerActionOutputBuilder {
   35         -
    if builder.action.is_none() {
   36         -
        builder.action = Some(crate::types::PlayerAction::Unknown)
   37         -
    }
   38         -
    builder
   39         -
}
   40         -
   41         -
pub(crate) fn post_union_with_json_name_output_output_correct_errors(
   42         -
    mut builder: crate::operation::post_union_with_json_name::builders::PostUnionWithJsonNameOutputBuilder,
   43         -
) -> crate::operation::post_union_with_json_name::builders::PostUnionWithJsonNameOutputBuilder {
   44         -
    if builder.value.is_none() {
   45         -
        builder.value = Some(crate::types::UnionWithJsonName::Unknown)
   46         -
    }
   47         -
    builder
   48         -
}
   49         -
   50         -
pub(crate) fn response_code_required_output_output_correct_errors(
   51         -
    mut builder: crate::operation::response_code_required::builders::ResponseCodeRequiredOutputBuilder,
   52         -
) -> crate::operation::response_code_required::builders::ResponseCodeRequiredOutputBuilder {
   53         -
    if builder.response_code.is_none() {
   54         -
        builder.response_code = Some(Default::default())
   55         -
    }
   56         -
    builder
   57         -
}

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/serialization_settings.rs

@@ -1,0 +89,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
/*
    3         -
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
    4         -
 * SPDX-License-Identifier: Apache-2.0
    5         -
 */
    6         -
    7         -
#![allow(dead_code)]
    8         -
    9         -
use aws_smithy_http::header::set_request_header_if_absent;
   10         -
use aws_smithy_types::config_bag::{Storable, StoreReplace};
   11         -
use http_1x::header::{HeaderName, CONTENT_LENGTH, CONTENT_TYPE};
   12         -
   13         -
/// Configuration for how default protocol headers are serialized
   14         -
#[derive(Clone, Debug, Default)]
   15         -
pub(crate) struct HeaderSerializationSettings {
   16         -
    omit_default_content_length: bool,
   17         -
    omit_default_content_type: bool,
   18         -
}
   19         -
   20         -
impl HeaderSerializationSettings {
   21         -
    /// Creates new [`HeaderSerializationSettings`]
   22         -
    pub(crate) fn new() -> Self {
   23         -
        Default::default()
   24         -
    }
   25         -
   26         -
    /// Omit the default `Content-Length` header during serialization
   27         -
    pub(crate) fn omit_default_content_length(self) -> Self {
   28         -
        Self {
   29         -
            omit_default_content_length: true,
   30         -
            ..self
   31         -
        }
   32         -
    }
   33         -
   34         -
    /// Omit the default `Content-Type` header during serialization
   35         -
    pub(crate) fn omit_default_content_type(self) -> Self {
   36         -
        Self {
   37         -
            omit_default_content_type: true,
   38         -
            ..self
   39         -
        }
   40         -
    }
   41         -
   42         -
    /// Returns true if the given default header name should be serialized
   43         -
    fn include_header(&self, header: &HeaderName) -> bool {
   44         -
        (!self.omit_default_content_length || header != CONTENT_LENGTH) && (!self.omit_default_content_type || header != CONTENT_TYPE)
   45         -
    }
   46         -
   47         -
    /// Sets a default header on the given request builder if it should be serialized
   48         -
    pub(crate) fn set_default_header(
   49         -
        &self,
   50         -
        mut request: http_1x::request::Builder,
   51         -
        header_name: HeaderName,
   52         -
        value: &str,
   53         -
    ) -> http_1x::request::Builder {
   54         -
        if self.include_header(&header_name) {
   55         -
            request = set_request_header_if_absent(request, header_name, value);
   56         -
        }
   57         -
        request
   58         -
    }
   59         -
}
   60         -
   61         -
impl Storable for HeaderSerializationSettings {
   62         -
    type Storer = StoreReplace<Self>;
   63         -
}
   64         -
   65         -
#[cfg(test)]
   66         -
mod tests {
   67         -
    use super::*;
   68         -
   69         -
    #[test]
   70         -
    fn test_include_header() {
   71         -
        let settings = HeaderSerializationSettings::default();
   72         -
        assert!(settings.include_header(&CONTENT_LENGTH));
   73         -
        assert!(settings.include_header(&CONTENT_TYPE));
   74         -
   75         -
        let settings = HeaderSerializationSettings::default().omit_default_content_length();
   76         -
        assert!(!settings.include_header(&CONTENT_LENGTH));
   77         -
        assert!(settings.include_header(&CONTENT_TYPE));
   78         -
   79         -
        let settings = HeaderSerializationSettings::default().omit_default_content_type();
   80         -
        assert!(settings.include_header(&CONTENT_LENGTH));
   81         -
        assert!(!settings.include_header(&CONTENT_TYPE));
   82         -
   83         -
        let settings = HeaderSerializationSettings::default()
   84         -
            .omit_default_content_type()
   85         -
            .omit_default_content_length();
   86         -
        assert!(!settings.include_header(&CONTENT_LENGTH));
   87         -
        assert!(!settings.include_header(&CONTENT_TYPE));
   88         -
    }
   89         -
}

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

@@ -24,24 +107,118 @@
   44     44   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   45     45   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   46     46   
        if let Some(ref val) = self.payload {
   47     47   
            ser.write_blob(&BLOBPAYLOADEVENT_MEMBER_PAYLOAD, val)?;
   48     48   
        }
   49     49   
        Ok(())
   50     50   
    }
   51     51   
}
   52     52   
impl BlobPayloadEvent {
   53     53   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   54         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   55         -
        deserializer: &mut D,
          54  +
    pub fn deserialize(
          55  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   56     56   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   57     57   
        #[allow(unused_variables, unused_mut)]
   58     58   
        let mut builder = Self::builder();
   59     59   
        #[allow(
   60     60   
            unused_variables,
   61     61   
            unreachable_code,
   62     62   
            clippy::single_match,
   63     63   
            clippy::match_single_binding,
   64     64   
            clippy::diverging_sub_expression
   65     65   
        )]
   66         -
        deserializer.read_struct(&BLOBPAYLOADEVENT_SCHEMA, (), |_, member, deser| {
          66  +
        deserializer.read_struct(&BLOBPAYLOADEVENT_SCHEMA, &mut |member, deser| {
   67     67   
            match member.member_index() {
   68     68   
                Some(0) => {
   69     69   
                    builder.payload = Some(deser.read_blob(member)?);
   70     70   
                }
   71     71   
                _ => {}
   72     72   
            }
   73     73   
            Ok(())
   74     74   
        })?;
   75     75   
        Ok(builder.build())
   76     76   
    }
   77     77   
}
          78  +
impl BlobPayloadEvent {
          79  +
    /// Deserializes this structure from a body deserializer and HTTP response.
          80  +
    pub fn deserialize_with_response(
          81  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          82  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
          83  +
        _status: u16,
          84  +
        _body: &[u8],
          85  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          86  +
        Self::deserialize(deserializer)
          87  +
    }
          88  +
}
   78     89   
impl BlobPayloadEvent {
   79     90   
    /// Creates a new builder-style object to manufacture [`BlobPayloadEvent`](crate::types::BlobPayloadEvent).
   80     91   
    pub fn builder() -> crate::types::builders::BlobPayloadEventBuilder {
   81     92   
        crate::types::builders::BlobPayloadEventBuilder::default()
   82     93   
    }
   83     94   
}
   84     95   
   85     96   
/// A builder for [`BlobPayloadEvent`](crate::types::BlobPayloadEvent).
   86     97   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   87     98   
#[non_exhaustive]

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

@@ -23,23 +106,117 @@
   43     43   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   44     44   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   45     45   
        if let Some(ref val) = self.member {
   46     46   
            ser.write_integer(&CLIENTOPTIONALDEFAULTS_MEMBER_MEMBER, *val)?;
   47     47   
        }
   48     48   
        Ok(())
   49     49   
    }
   50     50   
}
   51     51   
impl ClientOptionalDefaults {
   52     52   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   53         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   54         -
        deserializer: &mut D,
          53  +
    pub fn deserialize(
          54  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   55     55   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   56     56   
        #[allow(unused_variables, unused_mut)]
   57     57   
        let mut builder = Self::builder();
   58     58   
        #[allow(
   59     59   
            unused_variables,
   60     60   
            unreachable_code,
   61     61   
            clippy::single_match,
   62     62   
            clippy::match_single_binding,
   63     63   
            clippy::diverging_sub_expression
   64     64   
        )]
   65         -
        deserializer.read_struct(&CLIENTOPTIONALDEFAULTS_SCHEMA, (), |_, member, deser| {
          65  +
        deserializer.read_struct(&CLIENTOPTIONALDEFAULTS_SCHEMA, &mut |member, deser| {
   66     66   
            match member.member_index() {
   67     67   
                Some(0) => {
   68     68   
                    builder.member = Some(deser.read_integer(member)?);
   69     69   
                }
   70     70   
                _ => {}
   71     71   
            }
   72     72   
            Ok(())
   73     73   
        })?;
   74     74   
        Ok(builder.build())
   75     75   
    }
   76     76   
}
          77  +
impl ClientOptionalDefaults {
          78  +
    /// Deserializes this structure from a body deserializer and HTTP response.
          79  +
    pub fn deserialize_with_response(
          80  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          81  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
          82  +
        _status: u16,
          83  +
        _body: &[u8],
          84  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          85  +
        Self::deserialize(deserializer)
          86  +
    }
          87  +
}
   77     88   
impl ClientOptionalDefaults {
   78     89   
    /// Creates a new builder-style object to manufacture [`ClientOptionalDefaults`](crate::types::ClientOptionalDefaults).
   79     90   
    pub fn builder() -> crate::types::builders::ClientOptionalDefaultsBuilder {
   80     91   
        crate::types::builders::ClientOptionalDefaultsBuilder::default()
   81     92   
    }
   82     93   
}
   83     94   
   84     95   
/// A builder for [`ClientOptionalDefaults`](crate::types::ClientOptionalDefaults).
   85     96   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   86     97   
#[non_exhaustive]

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

@@ -1,1 +107,118 @@
   17     17   
    "aws.protocoltests.restjson",
   18     18   
    "ComplexNestedErrorData",
   19     19   
);
   20     20   
static COMPLEXNESTEDERRORDATA_MEMBER_FOO: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   21     21   
    ::aws_smithy_schema::ShapeId::from_static(
   22     22   
        "aws.protocoltests.restjson#ComplexNestedErrorData$Foo",
   23     23   
        "aws.protocoltests.restjson",
   24     24   
        "ComplexNestedErrorData",
   25     25   
    ),
   26     26   
    ::aws_smithy_schema::ShapeType::String,
   27         -
    "foo",
          27  +
    "Foo",
   28     28   
    0,
   29     29   
)
   30     30   
.with_json_name("Fooooo");
   31     31   
static COMPLEXNESTEDERRORDATA_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   32     32   
    COMPLEXNESTEDERRORDATA_SCHEMA_ID,
   33     33   
    ::aws_smithy_schema::ShapeType::Structure,
   34     34   
    &[&COMPLEXNESTEDERRORDATA_MEMBER_FOO],
   35     35   
);
   36     36   
impl ComplexNestedErrorData {
   37     37   
    /// The schema for this shape.
   38     38   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &COMPLEXNESTEDERRORDATA_SCHEMA;
   39     39   
}
   40     40   
impl ::aws_smithy_schema::serde::SerializableStruct for ComplexNestedErrorData {
   41     41   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   42     42   
    fn serialize_members(
   43     43   
        &self,
   44     44   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   45     45   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   46     46   
        if let Some(ref val) = self.foo {
   47     47   
            ser.write_string(&COMPLEXNESTEDERRORDATA_MEMBER_FOO, val)?;
   48     48   
        }
   49     49   
        Ok(())
   50     50   
    }
   51     51   
}
   52     52   
impl ComplexNestedErrorData {
   53     53   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   54         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   55         -
        deserializer: &mut D,
          54  +
    pub fn deserialize(
          55  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   56     56   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   57     57   
        #[allow(unused_variables, unused_mut)]
   58     58   
        let mut builder = Self::builder();
   59     59   
        #[allow(
   60     60   
            unused_variables,
   61     61   
            unreachable_code,
   62     62   
            clippy::single_match,
   63     63   
            clippy::match_single_binding,
   64     64   
            clippy::diverging_sub_expression
   65     65   
        )]
   66         -
        deserializer.read_struct(&COMPLEXNESTEDERRORDATA_SCHEMA, (), |_, member, deser| {
          66  +
        deserializer.read_struct(&COMPLEXNESTEDERRORDATA_SCHEMA, &mut |member, deser| {
   67     67   
            match member.member_index() {
   68     68   
                Some(0) => {
   69     69   
                    builder.foo = Some(deser.read_string(member)?);
   70     70   
                }
   71     71   
                _ => {}
   72     72   
            }
   73     73   
            Ok(())
   74     74   
        })?;
   75     75   
        Ok(builder.build())
   76     76   
    }
   77     77   
}
          78  +
impl ComplexNestedErrorData {
          79  +
    /// Deserializes this structure from a body deserializer and HTTP response.
          80  +
    pub fn deserialize_with_response(
          81  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          82  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
          83  +
        _status: u16,
          84  +
        _body: &[u8],
          85  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          86  +
        Self::deserialize(deserializer)
          87  +
    }
          88  +
}
   78     89   
impl ComplexNestedErrorData {
   79     90   
    /// Creates a new builder-style object to manufacture [`ComplexNestedErrorData`](crate::types::ComplexNestedErrorData).
   80     91   
    pub fn builder() -> crate::types::builders::ComplexNestedErrorDataBuilder {
   81     92   
        crate::types::builders::ComplexNestedErrorDataBuilder::default()
   82     93   
    }
   83     94   
}
   84     95   
   85     96   
/// A builder for [`ComplexNestedErrorData`](crate::types::ComplexNestedErrorData).
   86     97   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   87     98   
#[non_exhaustive]

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

@@ -159,159 +461,461 @@
  179    179   
}
  180    180   
static DEFAULTS_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
  181    181   
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#Defaults", "aws.protocoltests.restjson", "Defaults");
  182    182   
static DEFAULTS_MEMBER_DEFAULT_STRING: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  183    183   
    ::aws_smithy_schema::ShapeId::from_static(
  184    184   
        "aws.protocoltests.restjson#Defaults$defaultString",
  185    185   
        "aws.protocoltests.restjson",
  186    186   
        "Defaults",
  187    187   
    ),
  188    188   
    ::aws_smithy_schema::ShapeType::String,
  189         -
    "default_string",
         189  +
    "defaultString",
  190    190   
    0,
  191    191   
);
  192    192   
static DEFAULTS_MEMBER_DEFAULT_BOOLEAN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  193    193   
    ::aws_smithy_schema::ShapeId::from_static(
  194    194   
        "aws.protocoltests.restjson#Defaults$defaultBoolean",
  195    195   
        "aws.protocoltests.restjson",
  196    196   
        "Defaults",
  197    197   
    ),
  198    198   
    ::aws_smithy_schema::ShapeType::Boolean,
  199         -
    "default_boolean",
         199  +
    "defaultBoolean",
  200    200   
    1,
  201    201   
);
  202    202   
static DEFAULTS_MEMBER_DEFAULT_LIST: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  203    203   
    ::aws_smithy_schema::ShapeId::from_static(
  204    204   
        "aws.protocoltests.restjson#Defaults$defaultList",
  205    205   
        "aws.protocoltests.restjson",
  206    206   
        "Defaults",
  207    207   
    ),
  208    208   
    ::aws_smithy_schema::ShapeType::List,
  209         -
    "default_list",
         209  +
    "defaultList",
  210    210   
    2,
  211    211   
);
  212    212   
static DEFAULTS_MEMBER_DEFAULT_DOCUMENT_MAP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  213    213   
    ::aws_smithy_schema::ShapeId::from_static(
  214    214   
        "aws.protocoltests.restjson#Defaults$defaultDocumentMap",
  215    215   
        "aws.protocoltests.restjson",
  216    216   
        "Defaults",
  217    217   
    ),
  218    218   
    ::aws_smithy_schema::ShapeType::Document,
  219         -
    "default_document_map",
         219  +
    "defaultDocumentMap",
  220    220   
    3,
  221    221   
);
  222    222   
static DEFAULTS_MEMBER_DEFAULT_DOCUMENT_STRING: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  223    223   
    ::aws_smithy_schema::ShapeId::from_static(
  224    224   
        "aws.protocoltests.restjson#Defaults$defaultDocumentString",
  225    225   
        "aws.protocoltests.restjson",
  226    226   
        "Defaults",
  227    227   
    ),
  228    228   
    ::aws_smithy_schema::ShapeType::Document,
  229         -
    "default_document_string",
         229  +
    "defaultDocumentString",
  230    230   
    4,
  231    231   
);
  232    232   
static DEFAULTS_MEMBER_DEFAULT_DOCUMENT_BOOLEAN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  233    233   
    ::aws_smithy_schema::ShapeId::from_static(
  234    234   
        "aws.protocoltests.restjson#Defaults$defaultDocumentBoolean",
  235    235   
        "aws.protocoltests.restjson",
  236    236   
        "Defaults",
  237    237   
    ),
  238    238   
    ::aws_smithy_schema::ShapeType::Document,
  239         -
    "default_document_boolean",
         239  +
    "defaultDocumentBoolean",
  240    240   
    5,
  241    241   
);
  242    242   
static DEFAULTS_MEMBER_DEFAULT_DOCUMENT_LIST: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  243    243   
    ::aws_smithy_schema::ShapeId::from_static(
  244    244   
        "aws.protocoltests.restjson#Defaults$defaultDocumentList",
  245    245   
        "aws.protocoltests.restjson",
  246    246   
        "Defaults",
  247    247   
    ),
  248    248   
    ::aws_smithy_schema::ShapeType::Document,
  249         -
    "default_document_list",
         249  +
    "defaultDocumentList",
  250    250   
    6,
  251    251   
);
  252    252   
static DEFAULTS_MEMBER_DEFAULT_NULL_DOCUMENT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  253    253   
    ::aws_smithy_schema::ShapeId::from_static(
  254    254   
        "aws.protocoltests.restjson#Defaults$defaultNullDocument",
  255    255   
        "aws.protocoltests.restjson",
  256    256   
        "Defaults",
  257    257   
    ),
  258    258   
    ::aws_smithy_schema::ShapeType::Document,
  259         -
    "default_null_document",
         259  +
    "defaultNullDocument",
  260    260   
    7,
  261    261   
);
  262    262   
static DEFAULTS_MEMBER_DEFAULT_TIMESTAMP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  263    263   
    ::aws_smithy_schema::ShapeId::from_static(
  264    264   
        "aws.protocoltests.restjson#Defaults$defaultTimestamp",
  265    265   
        "aws.protocoltests.restjson",
  266    266   
        "Defaults",
  267    267   
    ),
  268    268   
    ::aws_smithy_schema::ShapeType::Timestamp,
  269         -
    "default_timestamp",
         269  +
    "defaultTimestamp",
  270    270   
    8,
  271    271   
);
  272    272   
static DEFAULTS_MEMBER_DEFAULT_BLOB: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  273    273   
    ::aws_smithy_schema::ShapeId::from_static(
  274    274   
        "aws.protocoltests.restjson#Defaults$defaultBlob",
  275    275   
        "aws.protocoltests.restjson",
  276    276   
        "Defaults",
  277    277   
    ),
  278    278   
    ::aws_smithy_schema::ShapeType::Blob,
  279         -
    "default_blob",
         279  +
    "defaultBlob",
  280    280   
    9,
  281    281   
);
  282    282   
static DEFAULTS_MEMBER_DEFAULT_BYTE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  283    283   
    ::aws_smithy_schema::ShapeId::from_static(
  284    284   
        "aws.protocoltests.restjson#Defaults$defaultByte",
  285    285   
        "aws.protocoltests.restjson",
  286    286   
        "Defaults",
  287    287   
    ),
  288    288   
    ::aws_smithy_schema::ShapeType::Byte,
  289         -
    "default_byte",
         289  +
    "defaultByte",
  290    290   
    10,
  291    291   
);
  292    292   
static DEFAULTS_MEMBER_DEFAULT_SHORT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  293    293   
    ::aws_smithy_schema::ShapeId::from_static(
  294    294   
        "aws.protocoltests.restjson#Defaults$defaultShort",
  295    295   
        "aws.protocoltests.restjson",
  296    296   
        "Defaults",
  297    297   
    ),
  298    298   
    ::aws_smithy_schema::ShapeType::Short,
  299         -
    "default_short",
         299  +
    "defaultShort",
  300    300   
    11,
  301    301   
);
  302    302   
static DEFAULTS_MEMBER_DEFAULT_INTEGER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  303    303   
    ::aws_smithy_schema::ShapeId::from_static(
  304    304   
        "aws.protocoltests.restjson#Defaults$defaultInteger",
  305    305   
        "aws.protocoltests.restjson",
  306    306   
        "Defaults",
  307    307   
    ),
  308    308   
    ::aws_smithy_schema::ShapeType::Integer,
  309         -
    "default_integer",
         309  +
    "defaultInteger",
  310    310   
    12,
  311    311   
);
  312    312   
static DEFAULTS_MEMBER_DEFAULT_LONG: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  313    313   
    ::aws_smithy_schema::ShapeId::from_static(
  314    314   
        "aws.protocoltests.restjson#Defaults$defaultLong",
  315    315   
        "aws.protocoltests.restjson",
  316    316   
        "Defaults",
  317    317   
    ),
  318    318   
    ::aws_smithy_schema::ShapeType::Long,
  319         -
    "default_long",
         319  +
    "defaultLong",
  320    320   
    13,
  321    321   
);
  322    322   
static DEFAULTS_MEMBER_DEFAULT_FLOAT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  323    323   
    ::aws_smithy_schema::ShapeId::from_static(
  324    324   
        "aws.protocoltests.restjson#Defaults$defaultFloat",
  325    325   
        "aws.protocoltests.restjson",
  326    326   
        "Defaults",
  327    327   
    ),
  328    328   
    ::aws_smithy_schema::ShapeType::Float,
  329         -
    "default_float",
         329  +
    "defaultFloat",
  330    330   
    14,
  331    331   
);
  332    332   
static DEFAULTS_MEMBER_DEFAULT_DOUBLE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  333    333   
    ::aws_smithy_schema::ShapeId::from_static(
  334    334   
        "aws.protocoltests.restjson#Defaults$defaultDouble",
  335    335   
        "aws.protocoltests.restjson",
  336    336   
        "Defaults",
  337    337   
    ),
  338    338   
    ::aws_smithy_schema::ShapeType::Double,
  339         -
    "default_double",
         339  +
    "defaultDouble",
  340    340   
    15,
  341    341   
);
  342    342   
static DEFAULTS_MEMBER_DEFAULT_MAP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  343    343   
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#Defaults$defaultMap", "aws.protocoltests.restjson", "Defaults"),
  344    344   
    ::aws_smithy_schema::ShapeType::Map,
  345         -
    "default_map",
         345  +
    "defaultMap",
  346    346   
    16,
  347    347   
);
  348    348   
static DEFAULTS_MEMBER_DEFAULT_ENUM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  349    349   
    ::aws_smithy_schema::ShapeId::from_static(
  350    350   
        "aws.protocoltests.restjson#Defaults$defaultEnum",
  351    351   
        "aws.protocoltests.restjson",
  352    352   
        "Defaults",
  353    353   
    ),
  354    354   
    ::aws_smithy_schema::ShapeType::String,
  355         -
    "default_enum",
         355  +
    "defaultEnum",
  356    356   
    17,
  357    357   
);
  358    358   
static DEFAULTS_MEMBER_DEFAULT_INT_ENUM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  359    359   
    ::aws_smithy_schema::ShapeId::from_static(
  360    360   
        "aws.protocoltests.restjson#Defaults$defaultIntEnum",
  361    361   
        "aws.protocoltests.restjson",
  362    362   
        "Defaults",
  363    363   
    ),
  364    364   
    ::aws_smithy_schema::ShapeType::Integer,
  365         -
    "default_int_enum",
         365  +
    "defaultIntEnum",
  366    366   
    18,
  367    367   
);
  368    368   
static DEFAULTS_MEMBER_EMPTY_STRING: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  369    369   
    ::aws_smithy_schema::ShapeId::from_static(
  370    370   
        "aws.protocoltests.restjson#Defaults$emptyString",
  371    371   
        "aws.protocoltests.restjson",
  372    372   
        "Defaults",
  373    373   
    ),
  374    374   
    ::aws_smithy_schema::ShapeType::String,
  375         -
    "empty_string",
         375  +
    "emptyString",
  376    376   
    19,
  377    377   
);
  378    378   
static DEFAULTS_MEMBER_FALSE_BOOLEAN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  379    379   
    ::aws_smithy_schema::ShapeId::from_static(
  380    380   
        "aws.protocoltests.restjson#Defaults$falseBoolean",
  381    381   
        "aws.protocoltests.restjson",
  382    382   
        "Defaults",
  383    383   
    ),
  384    384   
    ::aws_smithy_schema::ShapeType::Boolean,
  385         -
    "false_boolean",
         385  +
    "falseBoolean",
  386    386   
    20,
  387    387   
);
  388    388   
static DEFAULTS_MEMBER_EMPTY_BLOB: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  389    389   
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#Defaults$emptyBlob", "aws.protocoltests.restjson", "Defaults"),
  390    390   
    ::aws_smithy_schema::ShapeType::Blob,
  391         -
    "empty_blob",
         391  +
    "emptyBlob",
  392    392   
    21,
  393    393   
);
  394    394   
static DEFAULTS_MEMBER_ZERO_BYTE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  395    395   
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#Defaults$zeroByte", "aws.protocoltests.restjson", "Defaults"),
  396    396   
    ::aws_smithy_schema::ShapeType::Byte,
  397         -
    "zero_byte",
         397  +
    "zeroByte",
  398    398   
    22,
  399    399   
);
  400    400   
static DEFAULTS_MEMBER_ZERO_SHORT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  401    401   
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#Defaults$zeroShort", "aws.protocoltests.restjson", "Defaults"),
  402    402   
    ::aws_smithy_schema::ShapeType::Short,
  403         -
    "zero_short",
         403  +
    "zeroShort",
  404    404   
    23,
  405    405   
);
  406    406   
static DEFAULTS_MEMBER_ZERO_INTEGER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  407    407   
    ::aws_smithy_schema::ShapeId::from_static(
  408    408   
        "aws.protocoltests.restjson#Defaults$zeroInteger",
  409    409   
        "aws.protocoltests.restjson",
  410    410   
        "Defaults",
  411    411   
    ),
  412    412   
    ::aws_smithy_schema::ShapeType::Integer,
  413         -
    "zero_integer",
         413  +
    "zeroInteger",
  414    414   
    24,
  415    415   
);
  416    416   
static DEFAULTS_MEMBER_ZERO_LONG: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  417    417   
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#Defaults$zeroLong", "aws.protocoltests.restjson", "Defaults"),
  418    418   
    ::aws_smithy_schema::ShapeType::Long,
  419         -
    "zero_long",
         419  +
    "zeroLong",
  420    420   
    25,
  421    421   
);
  422    422   
static DEFAULTS_MEMBER_ZERO_FLOAT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  423    423   
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#Defaults$zeroFloat", "aws.protocoltests.restjson", "Defaults"),
  424    424   
    ::aws_smithy_schema::ShapeType::Float,
  425         -
    "zero_float",
         425  +
    "zeroFloat",
  426    426   
    26,
  427    427   
);
  428    428   
static DEFAULTS_MEMBER_ZERO_DOUBLE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  429    429   
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#Defaults$zeroDouble", "aws.protocoltests.restjson", "Defaults"),
  430    430   
    ::aws_smithy_schema::ShapeType::Double,
  431         -
    "zero_double",
         431  +
    "zeroDouble",
  432    432   
    27,
  433    433   
);
  434    434   
static DEFAULTS_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  435    435   
    DEFAULTS_SCHEMA_ID,
  436    436   
    ::aws_smithy_schema::ShapeType::Structure,
  437    437   
    &[
  438    438   
        &DEFAULTS_MEMBER_DEFAULT_STRING,
  439    439   
        &DEFAULTS_MEMBER_DEFAULT_BOOLEAN,
  440    440   
        &DEFAULTS_MEMBER_DEFAULT_LIST,
  441    441   
        &DEFAULTS_MEMBER_DEFAULT_DOCUMENT_MAP,
@@ -583,583 +767,758 @@
  603    603   
        }
  604    604   
        {
  605    605   
            let val = &self.zero_double;
  606    606   
            ser.write_double(&DEFAULTS_MEMBER_ZERO_DOUBLE, *val)?;
  607    607   
        }
  608    608   
        Ok(())
  609    609   
    }
  610    610   
}
  611    611   
impl Defaults {
  612    612   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  613         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  614         -
        deserializer: &mut D,
         613  +
    pub fn deserialize(
         614  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  615    615   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  616    616   
        #[allow(unused_variables, unused_mut)]
  617    617   
        let mut builder = Self::builder();
  618    618   
        #[allow(
  619    619   
            unused_variables,
  620    620   
            unreachable_code,
  621    621   
            clippy::single_match,
  622    622   
            clippy::match_single_binding,
  623    623   
            clippy::diverging_sub_expression
  624    624   
        )]
  625         -
        deserializer.read_struct(&DEFAULTS_SCHEMA, (), |_, member, deser| {
         625  +
        deserializer.read_struct(&DEFAULTS_SCHEMA, &mut |member, deser| {
  626    626   
            match member.member_index() {
  627    627   
                Some(0) => {
  628    628   
                    builder.default_string = Some(deser.read_string(member)?);
  629    629   
                }
  630    630   
                Some(1) => {
  631    631   
                    builder.default_boolean = Some(deser.read_boolean(member)?);
  632    632   
                }
  633    633   
                Some(2) => {
  634         -
                    builder.default_list = Some({
  635         -
                        let container = if let Some(cap) = deser.container_size() {
  636         -
                            Vec::with_capacity(cap)
  637         -
                        } else {
  638         -
                            Vec::new()
  639         -
                        };
  640         -
                        deser.read_list(member, container, |mut list, deser| {
  641         -
                            list.push(deser.read_string(member)?);
  642         -
                            Ok(list)
  643         -
                        })?
  644         -
                    });
         634  +
                    builder.default_list = Some(deser.read_string_list(member)?);
  645    635   
                }
  646    636   
                Some(3) => {
  647    637   
                    builder.default_document_map = Some(deser.read_document(member)?);
  648    638   
                }
  649    639   
                Some(4) => {
  650    640   
                    builder.default_document_string = Some(deser.read_document(member)?);
  651    641   
                }
  652    642   
                Some(5) => {
  653    643   
                    builder.default_document_boolean = Some(deser.read_document(member)?);
  654    644   
                }
  655    645   
                Some(6) => {
  656    646   
                    builder.default_document_list = Some(deser.read_document(member)?);
  657    647   
                }
  658    648   
                Some(7) => {
  659    649   
                    builder.default_null_document = Some(deser.read_document(member)?);
  660    650   
                }
  661    651   
                Some(8) => {
  662    652   
                    builder.default_timestamp = Some(deser.read_timestamp(member)?);
  663    653   
                }
  664    654   
                Some(9) => {
  665    655   
                    builder.default_blob = Some(deser.read_blob(member)?);
  666    656   
                }
  667    657   
                Some(10) => {
  668    658   
                    builder.default_byte = Some(deser.read_byte(member)?);
  669    659   
                }
  670    660   
                Some(11) => {
  671    661   
                    builder.default_short = Some(deser.read_short(member)?);
  672    662   
                }
  673    663   
                Some(12) => {
  674    664   
                    builder.default_integer = Some(deser.read_integer(member)?);
  675    665   
                }
  676    666   
                Some(13) => {
  677    667   
                    builder.default_long = Some(deser.read_long(member)?);
  678    668   
                }
  679    669   
                Some(14) => {
  680    670   
                    builder.default_float = Some(deser.read_float(member)?);
  681    671   
                }
  682    672   
                Some(15) => {
  683    673   
                    builder.default_double = Some(deser.read_double(member)?);
  684    674   
                }
  685    675   
                Some(16) => {
  686         -
                    builder.default_map = Some({
  687         -
                        let container = if let Some(cap) = deser.container_size() {
  688         -
                            std::collections::HashMap::with_capacity(cap)
  689         -
                        } else {
  690         -
                            std::collections::HashMap::new()
  691         -
                        };
  692         -
                        deser.read_map(member, container, |mut map, key, deser| {
  693         -
                            map.insert(key, deser.read_string(member)?);
  694         -
                            Ok(map)
  695         -
                        })?
  696         -
                    });
         676  +
                    builder.default_map = Some(deser.read_string_string_map(member)?);
  697    677   
                }
  698    678   
                Some(17) => {
  699    679   
                    builder.default_enum = Some(crate::types::TestEnum::from(deser.read_string(member)?.as_str()));
  700    680   
                }
  701    681   
                Some(18) => {
  702    682   
                    builder.default_int_enum = Some(deser.read_integer(member)?);
  703    683   
                }
  704    684   
                Some(19) => {
  705    685   
                    builder.empty_string = Some(deser.read_string(member)?);
  706    686   
                }
  707    687   
                Some(20) => {
  708    688   
                    builder.false_boolean = Some(deser.read_boolean(member)?);
  709    689   
                }
  710    690   
                Some(21) => {
  711    691   
                    builder.empty_blob = Some(deser.read_blob(member)?);
  712    692   
                }
  713    693   
                Some(22) => {
  714    694   
                    builder.zero_byte = Some(deser.read_byte(member)?);
  715    695   
                }
  716    696   
                Some(23) => {
  717    697   
                    builder.zero_short = Some(deser.read_short(member)?);
  718    698   
                }
  719    699   
                Some(24) => {
  720    700   
                    builder.zero_integer = Some(deser.read_integer(member)?);
  721    701   
                }
  722    702   
                Some(25) => {
  723    703   
                    builder.zero_long = Some(deser.read_long(member)?);
  724    704   
                }
  725    705   
                Some(26) => {
  726    706   
                    builder.zero_float = Some(deser.read_float(member)?);
  727    707   
                }
  728    708   
                Some(27) => {
  729    709   
                    builder.zero_double = Some(deser.read_double(member)?);
  730    710   
                }
  731    711   
                _ => {}
  732    712   
            }
  733    713   
            Ok(())
  734    714   
        })?;
  735    715   
        Ok(builder.build())
  736    716   
    }
  737    717   
}
         718  +
impl Defaults {
         719  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         720  +
    pub fn deserialize_with_response(
         721  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         722  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         723  +
        _status: u16,
         724  +
        _body: &[u8],
         725  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         726  +
        Self::deserialize(deserializer)
         727  +
    }
         728  +
}
  738    729   
impl Defaults {
  739    730   
    /// Creates a new builder-style object to manufacture [`Defaults`](crate::types::Defaults).
  740    731   
    pub fn builder() -> crate::types::builders::DefaultsBuilder {
  741    732   
        crate::types::builders::DefaultsBuilder::default()
  742    733   
    }
  743    734   
}
  744    735   
  745    736   
/// A builder for [`Defaults`](crate::types::Defaults).
  746    737   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  747    738   
#[non_exhaustive]

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

@@ -48,48 +137,148 @@
   68     68   
            ser.write_string(&DIALOG_MEMBER_GREETING, val)?;
   69     69   
        }
   70     70   
        if let Some(ref val) = self.farewell {
   71     71   
            ser.write_struct(&DIALOG_MEMBER_FAREWELL, val)?;
   72     72   
        }
   73     73   
        Ok(())
   74     74   
    }
   75     75   
}
   76     76   
impl Dialog {
   77     77   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   78         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   79         -
        deserializer: &mut D,
          78  +
    pub fn deserialize(
          79  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   80     80   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   81     81   
        #[allow(unused_variables, unused_mut)]
   82     82   
        let mut builder = Self::builder();
   83     83   
        #[allow(
   84     84   
            unused_variables,
   85     85   
            unreachable_code,
   86     86   
            clippy::single_match,
   87     87   
            clippy::match_single_binding,
   88     88   
            clippy::diverging_sub_expression
   89     89   
        )]
   90         -
        deserializer.read_struct(&DIALOG_SCHEMA, (), |_, member, deser| {
          90  +
        deserializer.read_struct(&DIALOG_SCHEMA, &mut |member, deser| {
   91     91   
            match member.member_index() {
   92     92   
                Some(0) => {
   93     93   
                    builder.language = Some(deser.read_string(member)?);
   94     94   
                }
   95     95   
                Some(1) => {
   96     96   
                    builder.greeting = Some(deser.read_string(member)?);
   97     97   
                }
   98     98   
                Some(2) => {
   99     99   
                    builder.farewell = Some(crate::types::Farewell::deserialize(deser)?);
  100    100   
                }
  101    101   
                _ => {}
  102    102   
            }
  103    103   
            Ok(())
  104    104   
        })?;
  105    105   
        Ok(builder.build())
  106    106   
    }
  107    107   
}
         108  +
impl Dialog {
         109  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         110  +
    pub fn deserialize_with_response(
         111  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         112  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         113  +
        _status: u16,
         114  +
        _body: &[u8],
         115  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         116  +
        Self::deserialize(deserializer)
         117  +
    }
         118  +
}
  108    119   
impl Dialog {
  109    120   
    /// Creates a new builder-style object to manufacture [`Dialog`](crate::types::Dialog).
  110    121   
    pub fn builder() -> crate::types::builders::DialogBuilder {
  111    122   
        crate::types::builders::DialogBuilder::default()
  112    123   
    }
  113    124   
}
  114    125   
  115    126   
/// A builder for [`Dialog`](crate::types::Dialog).
  116    127   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  117    128   
#[non_exhaustive]

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

@@ -97,97 +0,272 @@
  117    117   
    }
  118    118   
    /// Returns true if this is a [`UnionPayload`](crate::types::EventStream::UnionPayload).
  119    119   
    pub fn is_union_payload(&self) -> bool {
  120    120   
        self.as_union_payload().is_ok()
  121    121   
    }
  122    122   
    /// Returns true if the enum instance is the `Unknown` variant.
  123    123   
    pub fn is_unknown(&self) -> bool {
  124    124   
        matches!(self, Self::Unknown)
  125    125   
    }
  126    126   
}
         127  +
static EVENTSTREAM_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
         128  +
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#EventStream", "aws.protocoltests.restjson", "EventStream");
         129  +
static EVENTSTREAM_MEMBER_HEADERS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         130  +
    ::aws_smithy_schema::ShapeId::from_static(
         131  +
        "aws.protocoltests.restjson#EventStream$headers",
         132  +
        "aws.protocoltests.restjson",
         133  +
        "EventStream",
         134  +
    ),
         135  +
    ::aws_smithy_schema::ShapeType::Structure,
         136  +
    "headers",
         137  +
    0,
         138  +
);
         139  +
static EVENTSTREAM_MEMBER_BLOBPAYLOAD: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         140  +
    ::aws_smithy_schema::ShapeId::from_static(
         141  +
        "aws.protocoltests.restjson#EventStream$blobPayload",
         142  +
        "aws.protocoltests.restjson",
         143  +
        "EventStream",
         144  +
    ),
         145  +
    ::aws_smithy_schema::ShapeType::Structure,
         146  +
    "blobPayload",
         147  +
    1,
         148  +
);
         149  +
static EVENTSTREAM_MEMBER_STRINGPAYLOAD: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         150  +
    ::aws_smithy_schema::ShapeId::from_static(
         151  +
        "aws.protocoltests.restjson#EventStream$stringPayload",
         152  +
        "aws.protocoltests.restjson",
         153  +
        "EventStream",
         154  +
    ),
         155  +
    ::aws_smithy_schema::ShapeType::Structure,
         156  +
    "stringPayload",
         157  +
    2,
         158  +
);
         159  +
static EVENTSTREAM_MEMBER_STRUCTUREPAYLOAD: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         160  +
    ::aws_smithy_schema::ShapeId::from_static(
         161  +
        "aws.protocoltests.restjson#EventStream$structurePayload",
         162  +
        "aws.protocoltests.restjson",
         163  +
        "EventStream",
         164  +
    ),
         165  +
    ::aws_smithy_schema::ShapeType::Structure,
         166  +
    "structurePayload",
         167  +
    3,
         168  +
);
         169  +
static EVENTSTREAM_MEMBER_UNIONPAYLOAD: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         170  +
    ::aws_smithy_schema::ShapeId::from_static(
         171  +
        "aws.protocoltests.restjson#EventStream$unionPayload",
         172  +
        "aws.protocoltests.restjson",
         173  +
        "EventStream",
         174  +
    ),
         175  +
    ::aws_smithy_schema::ShapeType::Structure,
         176  +
    "unionPayload",
         177  +
    4,
         178  +
);
         179  +
static EVENTSTREAM_MEMBER_HEADERSANDEXPLICITPAYLOAD: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         180  +
    ::aws_smithy_schema::ShapeId::from_static(
         181  +
        "aws.protocoltests.restjson#EventStream$headersAndExplicitPayload",
         182  +
        "aws.protocoltests.restjson",
         183  +
        "EventStream",
         184  +
    ),
         185  +
    ::aws_smithy_schema::ShapeType::Structure,
         186  +
    "headersAndExplicitPayload",
         187  +
    5,
         188  +
);
         189  +
static EVENTSTREAM_MEMBER_HEADERSANDIMPLICITPAYLOAD: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         190  +
    ::aws_smithy_schema::ShapeId::from_static(
         191  +
        "aws.protocoltests.restjson#EventStream$headersAndImplicitPayload",
         192  +
        "aws.protocoltests.restjson",
         193  +
        "EventStream",
         194  +
    ),
         195  +
    ::aws_smithy_schema::ShapeType::Structure,
         196  +
    "headersAndImplicitPayload",
         197  +
    6,
         198  +
);
         199  +
static EVENTSTREAM_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
         200  +
    EVENTSTREAM_SCHEMA_ID,
         201  +
    ::aws_smithy_schema::ShapeType::Union,
         202  +
    &[
         203  +
        &EVENTSTREAM_MEMBER_HEADERS,
         204  +
        &EVENTSTREAM_MEMBER_BLOBPAYLOAD,
         205  +
        &EVENTSTREAM_MEMBER_STRINGPAYLOAD,
         206  +
        &EVENTSTREAM_MEMBER_STRUCTUREPAYLOAD,
         207  +
        &EVENTSTREAM_MEMBER_UNIONPAYLOAD,
         208  +
        &EVENTSTREAM_MEMBER_HEADERSANDEXPLICITPAYLOAD,
         209  +
        &EVENTSTREAM_MEMBER_HEADERSANDIMPLICITPAYLOAD,
         210  +
    ],
         211  +
)
         212  +
.with_streaming();
         213  +
impl EventStream {
         214  +
    /// The schema for this shape.
         215  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &EVENTSTREAM_SCHEMA;
         216  +
}
         217  +
impl ::aws_smithy_schema::serde::SerializableStruct for EventStream {
         218  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         219  +
    fn serialize_members(
         220  +
        &self,
         221  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         222  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         223  +
        match self {
         224  +
            Self::Headers(val) => {
         225  +
                ser.write_struct(&EVENTSTREAM_MEMBER_HEADERS, val)?;
         226  +
            }
         227  +
            Self::BlobPayload(val) => {
         228  +
                ser.write_struct(&EVENTSTREAM_MEMBER_BLOBPAYLOAD, val)?;
         229  +
            }
         230  +
            Self::StringPayload(val) => {
         231  +
                ser.write_struct(&EVENTSTREAM_MEMBER_STRINGPAYLOAD, val)?;
         232  +
            }
         233  +
            Self::StructurePayload(val) => {
         234  +
                ser.write_struct(&EVENTSTREAM_MEMBER_STRUCTUREPAYLOAD, val)?;
         235  +
            }
         236  +
            Self::UnionPayload(val) => {
         237  +
                ser.write_struct(&EVENTSTREAM_MEMBER_UNIONPAYLOAD, val)?;
         238  +
            }
         239  +
            Self::HeadersAndExplicitPayload(val) => {
         240  +
                ser.write_struct(&EVENTSTREAM_MEMBER_HEADERSANDEXPLICITPAYLOAD, val)?;
         241  +
            }
         242  +
            Self::HeadersAndImplicitPayload(val) => {
         243  +
                ser.write_struct(&EVENTSTREAM_MEMBER_HEADERSANDIMPLICITPAYLOAD, val)?;
         244  +
            }
         245  +
            Self::Unknown => return Err(::aws_smithy_schema::serde::SerdeError::custom("cannot serialize unknown union variant")),
         246  +
        }
         247  +
        Ok(())
         248  +
    }
         249  +
}
         250  +
impl EventStream {
         251  +
    /// Deserializes this union from a [`ShapeDeserializer`].
         252  +
    pub fn deserialize(
         253  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         254  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         255  +
        let mut result: ::std::option::Option<Self> = ::std::option::Option::None;
         256  +
        #[allow(unused_variables, unreachable_code, clippy::single_match, clippy::match_single_binding)]
         257  +
        deserializer.read_struct(&EVENTSTREAM_SCHEMA, &mut |member, deser| {
         258  +
            result = ::std::option::Option::Some(match member.member_index() {
         259  +
                Some(0) => Self::Headers(crate::types::HeadersEvent::deserialize(deser)?),
         260  +
                Some(1) => Self::BlobPayload(crate::types::BlobPayloadEvent::deserialize(deser)?),
         261  +
                Some(2) => Self::StringPayload(crate::types::StringPayloadEvent::deserialize(deser)?),
         262  +
                Some(3) => Self::StructurePayload(crate::types::StructurePayloadEvent::deserialize(deser)?),
         263  +
                Some(4) => Self::UnionPayload(crate::types::UnionPayloadEvent::deserialize(deser)?),
         264  +
                Some(5) => Self::HeadersAndExplicitPayload(crate::types::HeadersAndExplicitPayloadEvent::deserialize(deser)?),
         265  +
                Some(6) => Self::HeadersAndImplicitPayload(crate::types::HeadersAndImplicitPayloadEvent::deserialize(deser)?),
         266  +
                _ => Self::Unknown,
         267  +
            });
         268  +
            Ok(())
         269  +
        })?;
         270  +
        result.ok_or_else(|| ::aws_smithy_schema::serde::SerdeError::custom("expected a union variant"))
         271  +
    }
         272  +
}

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

@@ -15,15 +98,109 @@
   35     35   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   36     36   
        {
   37     37   
            let val = &self.phrase;
   38     38   
            ser.write_string(&FAREWELL_MEMBER_PHRASE, val)?;
   39     39   
        }
   40     40   
        Ok(())
   41     41   
    }
   42     42   
}
   43     43   
impl Farewell {
   44     44   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   45         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   46         -
        deserializer: &mut D,
          45  +
    pub fn deserialize(
          46  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   47     47   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   48     48   
        #[allow(unused_variables, unused_mut)]
   49     49   
        let mut builder = Self::builder();
   50     50   
        #[allow(
   51     51   
            unused_variables,
   52     52   
            unreachable_code,
   53     53   
            clippy::single_match,
   54     54   
            clippy::match_single_binding,
   55     55   
            clippy::diverging_sub_expression
   56     56   
        )]
   57         -
        deserializer.read_struct(&FAREWELL_SCHEMA, (), |_, member, deser| {
          57  +
        deserializer.read_struct(&FAREWELL_SCHEMA, &mut |member, deser| {
   58     58   
            match member.member_index() {
   59     59   
                Some(0) => {
   60     60   
                    builder.phrase = Some(deser.read_string(member)?);
   61     61   
                }
   62     62   
                _ => {}
   63     63   
            }
   64     64   
            Ok(())
   65     65   
        })?;
   66     66   
        Ok(builder.build())
   67     67   
    }
   68     68   
}
          69  +
impl Farewell {
          70  +
    /// Deserializes this structure from a body deserializer and HTTP response.
          71  +
    pub fn deserialize_with_response(
          72  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          73  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
          74  +
        _status: u16,
          75  +
        _body: &[u8],
          76  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          77  +
        Self::deserialize(deserializer)
          78  +
    }
          79  +
}
   69     80   
impl Farewell {
   70     81   
    /// Creates a new builder-style object to manufacture [`Farewell`](crate::types::Farewell).
   71     82   
    pub fn builder() -> crate::types::builders::FarewellBuilder {
   72     83   
        crate::types::builders::FarewellBuilder::default()
   73     84   
    }
   74     85   
}
   75     86   
   76     87   
/// A builder for [`Farewell`](crate::types::Farewell).
   77     88   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   78     89   
#[non_exhaustive]

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

@@ -16,16 +99,110 @@
   36     36   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   37     37   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   38     38   
        if let Some(ref val) = self.hi {
   39     39   
            ser.write_string(&GREETINGSTRUCT_MEMBER_HI, val)?;
   40     40   
        }
   41     41   
        Ok(())
   42     42   
    }
   43     43   
}
   44     44   
impl GreetingStruct {
   45     45   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   46         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   47         -
        deserializer: &mut D,
          46  +
    pub fn deserialize(
          47  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   48     48   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   49     49   
        #[allow(unused_variables, unused_mut)]
   50     50   
        let mut builder = Self::builder();
   51     51   
        #[allow(
   52     52   
            unused_variables,
   53     53   
            unreachable_code,
   54     54   
            clippy::single_match,
   55     55   
            clippy::match_single_binding,
   56     56   
            clippy::diverging_sub_expression
   57     57   
        )]
   58         -
        deserializer.read_struct(&GREETINGSTRUCT_SCHEMA, (), |_, member, deser| {
          58  +
        deserializer.read_struct(&GREETINGSTRUCT_SCHEMA, &mut |member, deser| {
   59     59   
            match member.member_index() {
   60     60   
                Some(0) => {
   61     61   
                    builder.hi = Some(deser.read_string(member)?);
   62     62   
                }
   63     63   
                _ => {}
   64     64   
            }
   65     65   
            Ok(())
   66     66   
        })?;
   67     67   
        Ok(builder.build())
   68     68   
    }
   69     69   
}
          70  +
impl GreetingStruct {
          71  +
    /// Deserializes this structure from a body deserializer and HTTP response.
          72  +
    pub fn deserialize_with_response(
          73  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          74  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
          75  +
        _status: u16,
          76  +
        _body: &[u8],
          77  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          78  +
        Self::deserialize(deserializer)
          79  +
    }
          80  +
}
   70     81   
impl GreetingStruct {
   71     82   
    /// Creates a new builder-style object to manufacture [`GreetingStruct`](crate::types::GreetingStruct).
   72     83   
    pub fn builder() -> crate::types::builders::GreetingStructBuilder {
   73     84   
        crate::types::builders::GreetingStructBuilder::default()
   74     85   
    }
   75     86   
}
   76     87   
   77     88   
/// A builder for [`GreetingStruct`](crate::types::GreetingStruct).
   78     89   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   79     90   
#[non_exhaustive]

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

@@ -47,47 +133,144 @@
   67     67   
            ser.write_string(&HEADERSANDEXPLICITPAYLOADEVENT_MEMBER_HEADER, val)?;
   68     68   
        }
   69     69   
        if let Some(ref val) = self.payload {
   70     70   
            ser.write_struct(&HEADERSANDEXPLICITPAYLOADEVENT_MEMBER_PAYLOAD, val)?;
   71     71   
        }
   72     72   
        Ok(())
   73     73   
    }
   74     74   
}
   75     75   
impl HeadersAndExplicitPayloadEvent {
   76     76   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   77         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   78         -
        deserializer: &mut D,
          77  +
    pub fn deserialize(
          78  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   79     79   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   80     80   
        #[allow(unused_variables, unused_mut)]
   81     81   
        let mut builder = Self::builder();
   82     82   
        #[allow(
   83     83   
            unused_variables,
   84     84   
            unreachable_code,
   85     85   
            clippy::single_match,
   86     86   
            clippy::match_single_binding,
   87     87   
            clippy::diverging_sub_expression
   88     88   
        )]
   89         -
        deserializer.read_struct(&HEADERSANDEXPLICITPAYLOADEVENT_SCHEMA, (), |_, member, deser| {
          89  +
        deserializer.read_struct(&HEADERSANDEXPLICITPAYLOADEVENT_SCHEMA, &mut |member, deser| {
   90     90   
            match member.member_index() {
   91     91   
                Some(0) => {
   92     92   
                    builder.header = Some(deser.read_string(member)?);
   93     93   
                }
   94     94   
                Some(1) => {
   95     95   
                    builder.payload = Some(crate::types::PayloadStructure::deserialize(deser)?);
   96     96   
                }
   97     97   
                _ => {}
   98     98   
            }
   99     99   
            Ok(())
  100    100   
        })?;
  101    101   
        Ok(builder.build())
  102    102   
    }
  103    103   
}
         104  +
impl HeadersAndExplicitPayloadEvent {
         105  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         106  +
    pub fn deserialize_with_response(
         107  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         108  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         109  +
        _status: u16,
         110  +
        _body: &[u8],
         111  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         112  +
        Self::deserialize(deserializer)
         113  +
    }
         114  +
}
  104    115   
impl HeadersAndExplicitPayloadEvent {
  105    116   
    /// Creates a new builder-style object to manufacture [`HeadersAndExplicitPayloadEvent`](crate::types::HeadersAndExplicitPayloadEvent).
  106    117   
    pub fn builder() -> crate::types::builders::HeadersAndExplicitPayloadEventBuilder {
  107    118   
        crate::types::builders::HeadersAndExplicitPayloadEventBuilder::default()
  108    119   
    }
  109    120   
}
  110    121   
  111    122   
/// A builder for [`HeadersAndExplicitPayloadEvent`](crate::types::HeadersAndExplicitPayloadEvent).
  112    123   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  113    124   
#[non_exhaustive]

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

@@ -46,46 +132,143 @@
   66     66   
            ser.write_string(&HEADERSANDIMPLICITPAYLOADEVENT_MEMBER_HEADER, val)?;
   67     67   
        }
   68     68   
        if let Some(ref val) = self.payload {
   69     69   
            ser.write_string(&HEADERSANDIMPLICITPAYLOADEVENT_MEMBER_PAYLOAD, val)?;
   70     70   
        }
   71     71   
        Ok(())
   72     72   
    }
   73     73   
}
   74     74   
impl HeadersAndImplicitPayloadEvent {
   75     75   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   76         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   77         -
        deserializer: &mut D,
          76  +
    pub fn deserialize(
          77  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   78     78   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   79     79   
        #[allow(unused_variables, unused_mut)]
   80     80   
        let mut builder = Self::builder();
   81     81   
        #[allow(
   82     82   
            unused_variables,
   83     83   
            unreachable_code,
   84     84   
            clippy::single_match,
   85     85   
            clippy::match_single_binding,
   86     86   
            clippy::diverging_sub_expression
   87     87   
        )]
   88         -
        deserializer.read_struct(&HEADERSANDIMPLICITPAYLOADEVENT_SCHEMA, (), |_, member, deser| {
          88  +
        deserializer.read_struct(&HEADERSANDIMPLICITPAYLOADEVENT_SCHEMA, &mut |member, deser| {
   89     89   
            match member.member_index() {
   90     90   
                Some(0) => {
   91     91   
                    builder.header = Some(deser.read_string(member)?);
   92     92   
                }
   93     93   
                Some(1) => {
   94     94   
                    builder.payload = Some(deser.read_string(member)?);
   95     95   
                }
   96     96   
                _ => {}
   97     97   
            }
   98     98   
            Ok(())
   99     99   
        })?;
  100    100   
        Ok(builder.build())
  101    101   
    }
  102    102   
}
         103  +
impl HeadersAndImplicitPayloadEvent {
         104  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         105  +
    pub fn deserialize_with_response(
         106  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         107  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         108  +
        _status: u16,
         109  +
        _body: &[u8],
         110  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         111  +
        Self::deserialize(deserializer)
         112  +
    }
         113  +
}
  103    114   
impl HeadersAndImplicitPayloadEvent {
  104    115   
    /// Creates a new builder-style object to manufacture [`HeadersAndImplicitPayloadEvent`](crate::types::HeadersAndImplicitPayloadEvent).
  105    116   
    pub fn builder() -> crate::types::builders::HeadersAndImplicitPayloadEventBuilder {
  106    117   
        crate::types::builders::HeadersAndImplicitPayloadEventBuilder::default()
  107    118   
    }
  108    119   
}
  109    120   
  110    121   
/// A builder for [`HeadersAndImplicitPayloadEvent`](crate::types::HeadersAndImplicitPayloadEvent).
  111    122   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  112    123   
#[non_exhaustive]

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

@@ -36,36 +274,286 @@
   56     56   
}
   57     57   
static HEADERSEVENT_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
   58     58   
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#HeadersEvent", "aws.protocoltests.restjson", "HeadersEvent");
   59     59   
static HEADERSEVENT_MEMBER_BOOLEAN_HEADER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   60     60   
    ::aws_smithy_schema::ShapeId::from_static(
   61     61   
        "aws.protocoltests.restjson#HeadersEvent$booleanHeader",
   62     62   
        "aws.protocoltests.restjson",
   63     63   
        "HeadersEvent",
   64     64   
    ),
   65     65   
    ::aws_smithy_schema::ShapeType::Boolean,
   66         -
    "boolean_header",
          66  +
    "booleanHeader",
   67     67   
    0,
   68     68   
)
   69     69   
.with_event_header();
   70     70   
static HEADERSEVENT_MEMBER_BYTE_HEADER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   71     71   
    ::aws_smithy_schema::ShapeId::from_static(
   72     72   
        "aws.protocoltests.restjson#HeadersEvent$byteHeader",
   73     73   
        "aws.protocoltests.restjson",
   74     74   
        "HeadersEvent",
   75     75   
    ),
   76     76   
    ::aws_smithy_schema::ShapeType::Byte,
   77         -
    "byte_header",
          77  +
    "byteHeader",
   78     78   
    1,
   79     79   
)
   80     80   
.with_event_header();
   81     81   
static HEADERSEVENT_MEMBER_SHORT_HEADER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   82     82   
    ::aws_smithy_schema::ShapeId::from_static(
   83     83   
        "aws.protocoltests.restjson#HeadersEvent$shortHeader",
   84     84   
        "aws.protocoltests.restjson",
   85     85   
        "HeadersEvent",
   86     86   
    ),
   87     87   
    ::aws_smithy_schema::ShapeType::Short,
   88         -
    "short_header",
          88  +
    "shortHeader",
   89     89   
    2,
   90     90   
)
   91     91   
.with_event_header();
   92     92   
static HEADERSEVENT_MEMBER_INT_HEADER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   93     93   
    ::aws_smithy_schema::ShapeId::from_static(
   94     94   
        "aws.protocoltests.restjson#HeadersEvent$intHeader",
   95     95   
        "aws.protocoltests.restjson",
   96     96   
        "HeadersEvent",
   97     97   
    ),
   98     98   
    ::aws_smithy_schema::ShapeType::Integer,
   99         -
    "int_header",
          99  +
    "intHeader",
  100    100   
    3,
  101    101   
)
  102    102   
.with_event_header();
  103    103   
static HEADERSEVENT_MEMBER_LONG_HEADER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  104    104   
    ::aws_smithy_schema::ShapeId::from_static(
  105    105   
        "aws.protocoltests.restjson#HeadersEvent$longHeader",
  106    106   
        "aws.protocoltests.restjson",
  107    107   
        "HeadersEvent",
  108    108   
    ),
  109    109   
    ::aws_smithy_schema::ShapeType::Long,
  110         -
    "long_header",
         110  +
    "longHeader",
  111    111   
    4,
  112    112   
)
  113    113   
.with_event_header();
  114    114   
static HEADERSEVENT_MEMBER_BLOB_HEADER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  115    115   
    ::aws_smithy_schema::ShapeId::from_static(
  116    116   
        "aws.protocoltests.restjson#HeadersEvent$blobHeader",
  117    117   
        "aws.protocoltests.restjson",
  118    118   
        "HeadersEvent",
  119    119   
    ),
  120    120   
    ::aws_smithy_schema::ShapeType::Blob,
  121         -
    "blob_header",
         121  +
    "blobHeader",
  122    122   
    5,
  123    123   
)
  124    124   
.with_event_header();
  125    125   
static HEADERSEVENT_MEMBER_STRING_HEADER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  126    126   
    ::aws_smithy_schema::ShapeId::from_static(
  127    127   
        "aws.protocoltests.restjson#HeadersEvent$stringHeader",
  128    128   
        "aws.protocoltests.restjson",
  129    129   
        "HeadersEvent",
  130    130   
    ),
  131    131   
    ::aws_smithy_schema::ShapeType::String,
  132         -
    "string_header",
         132  +
    "stringHeader",
  133    133   
    6,
  134    134   
)
  135    135   
.with_event_header();
  136    136   
static HEADERSEVENT_MEMBER_TIMESTAMP_HEADER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  137    137   
    ::aws_smithy_schema::ShapeId::from_static(
  138    138   
        "aws.protocoltests.restjson#HeadersEvent$timestampHeader",
  139    139   
        "aws.protocoltests.restjson",
  140    140   
        "HeadersEvent",
  141    141   
    ),
  142    142   
    ::aws_smithy_schema::ShapeType::Timestamp,
  143         -
    "timestamp_header",
         143  +
    "timestampHeader",
  144    144   
    7,
  145    145   
)
  146         -
.with_event_header();
         146  +
.with_event_header()
         147  +
.with_timestamp_format(aws_smithy_schema::traits::TimestampFormat::DateTime);
  147    148   
static HEADERSEVENT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  148    149   
    HEADERSEVENT_SCHEMA_ID,
  149    150   
    ::aws_smithy_schema::ShapeType::Structure,
  150    151   
    &[
  151    152   
        &HEADERSEVENT_MEMBER_BOOLEAN_HEADER,
  152    153   
        &HEADERSEVENT_MEMBER_BYTE_HEADER,
  153    154   
        &HEADERSEVENT_MEMBER_SHORT_HEADER,
  154    155   
        &HEADERSEVENT_MEMBER_INT_HEADER,
  155    156   
        &HEADERSEVENT_MEMBER_LONG_HEADER,
  156    157   
        &HEADERSEVENT_MEMBER_BLOB_HEADER,
  157    158   
        &HEADERSEVENT_MEMBER_STRING_HEADER,
  158    159   
        &HEADERSEVENT_MEMBER_TIMESTAMP_HEADER,
  159    160   
    ],
  160    161   
);
  161    162   
impl HeadersEvent {
  162    163   
    /// The schema for this shape.
  163    164   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &HEADERSEVENT_SCHEMA;
  164    165   
}
  165    166   
impl ::aws_smithy_schema::serde::SerializableStruct for HeadersEvent {
  166    167   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  167    168   
    fn serialize_members(
  168    169   
        &self,
  169    170   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  170    171   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  171    172   
        if let Some(ref val) = self.boolean_header {
  172    173   
            ser.write_boolean(&HEADERSEVENT_MEMBER_BOOLEAN_HEADER, *val)?;
  173    174   
        }
  174    175   
        if let Some(ref val) = self.byte_header {
  175    176   
            ser.write_byte(&HEADERSEVENT_MEMBER_BYTE_HEADER, *val)?;
  176    177   
        }
  177    178   
        if let Some(ref val) = self.short_header {
  178    179   
            ser.write_short(&HEADERSEVENT_MEMBER_SHORT_HEADER, *val)?;
  179    180   
        }
  180    181   
        if let Some(ref val) = self.int_header {
  181    182   
            ser.write_integer(&HEADERSEVENT_MEMBER_INT_HEADER, *val)?;
  182    183   
        }
  183    184   
        if let Some(ref val) = self.long_header {
  184    185   
            ser.write_long(&HEADERSEVENT_MEMBER_LONG_HEADER, *val)?;
  185    186   
        }
  186    187   
        if let Some(ref val) = self.blob_header {
  187    188   
            ser.write_blob(&HEADERSEVENT_MEMBER_BLOB_HEADER, val)?;
  188    189   
        }
  189    190   
        if let Some(ref val) = self.string_header {
  190    191   
            ser.write_string(&HEADERSEVENT_MEMBER_STRING_HEADER, val)?;
  191    192   
        }
  192    193   
        if let Some(ref val) = self.timestamp_header {
  193    194   
            ser.write_timestamp(&HEADERSEVENT_MEMBER_TIMESTAMP_HEADER, val)?;
  194    195   
        }
  195    196   
        Ok(())
  196    197   
    }
  197    198   
}
  198    199   
impl HeadersEvent {
  199    200   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  200         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  201         -
        deserializer: &mut D,
         201  +
    pub fn deserialize(
         202  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  202    203   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  203    204   
        #[allow(unused_variables, unused_mut)]
  204    205   
        let mut builder = Self::builder();
  205    206   
        #[allow(
  206    207   
            unused_variables,
  207    208   
            unreachable_code,
  208    209   
            clippy::single_match,
  209    210   
            clippy::match_single_binding,
  210    211   
            clippy::diverging_sub_expression
  211    212   
        )]
  212         -
        deserializer.read_struct(&HEADERSEVENT_SCHEMA, (), |_, member, deser| {
         213  +
        deserializer.read_struct(&HEADERSEVENT_SCHEMA, &mut |member, deser| {
  213    214   
            match member.member_index() {
  214    215   
                Some(0) => {
  215    216   
                    builder.boolean_header = Some(deser.read_boolean(member)?);
  216    217   
                }
  217    218   
                Some(1) => {
  218    219   
                    builder.byte_header = Some(deser.read_byte(member)?);
  219    220   
                }
  220    221   
                Some(2) => {
  221    222   
                    builder.short_header = Some(deser.read_short(member)?);
  222    223   
                }
  223    224   
                Some(3) => {
  224    225   
                    builder.int_header = Some(deser.read_integer(member)?);
  225    226   
                }
  226    227   
                Some(4) => {
  227    228   
                    builder.long_header = Some(deser.read_long(member)?);
  228    229   
                }
  229    230   
                Some(5) => {
  230    231   
                    builder.blob_header = Some(deser.read_blob(member)?);
  231    232   
                }
  232    233   
                Some(6) => {
  233    234   
                    builder.string_header = Some(deser.read_string(member)?);
  234    235   
                }
  235    236   
                Some(7) => {
  236    237   
                    builder.timestamp_header = Some(deser.read_timestamp(member)?);
  237    238   
                }
  238    239   
                _ => {}
  239    240   
            }
  240    241   
            Ok(())
  241    242   
        })?;
  242    243   
        Ok(builder.build())
  243    244   
    }
  244    245   
}
         246  +
impl HeadersEvent {
         247  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         248  +
    pub fn deserialize_with_response(
         249  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         250  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         251  +
        _status: u16,
         252  +
        _body: &[u8],
         253  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         254  +
        Self::deserialize(deserializer)
         255  +
    }
         256  +
}
  245    257   
impl HeadersEvent {
  246    258   
    /// Creates a new builder-style object to manufacture [`HeadersEvent`](crate::types::HeadersEvent).
  247    259   
    pub fn builder() -> crate::types::builders::HeadersEventBuilder {
  248    260   
        crate::types::builders::HeadersEventBuilder::default()
  249    261   
    }
  250    262   
}
  251    263   
  252    264   
/// A builder for [`HeadersEvent`](crate::types::HeadersEvent).
  253    265   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  254    266   
#[non_exhaustive]

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

@@ -143,143 +0,334 @@
  163    163   
    }
  164    164   
    /// Returns true if this is a [`TimestampValue`](crate::types::MyUnion::TimestampValue).
  165    165   
    pub fn is_timestamp_value(&self) -> bool {
  166    166   
        self.as_timestamp_value().is_ok()
  167    167   
    }
  168    168   
    /// Returns true if the enum instance is the `Unknown` variant.
  169    169   
    pub fn is_unknown(&self) -> bool {
  170    170   
        matches!(self, Self::Unknown)
  171    171   
    }
  172    172   
}
         173  +
static MYUNION_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
         174  +
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#MyUnion", "aws.protocoltests.restjson", "MyUnion");
         175  +
static MYUNION_MEMBER_STRINGVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         176  +
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#MyUnion$stringValue", "aws.protocoltests.restjson", "MyUnion"),
         177  +
    ::aws_smithy_schema::ShapeType::String,
         178  +
    "stringValue",
         179  +
    0,
         180  +
);
         181  +
static MYUNION_MEMBER_BOOLEANVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         182  +
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#MyUnion$booleanValue", "aws.protocoltests.restjson", "MyUnion"),
         183  +
    ::aws_smithy_schema::ShapeType::Boolean,
         184  +
    "booleanValue",
         185  +
    1,
         186  +
);
         187  +
static MYUNION_MEMBER_NUMBERVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         188  +
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#MyUnion$numberValue", "aws.protocoltests.restjson", "MyUnion"),
         189  +
    ::aws_smithy_schema::ShapeType::Integer,
         190  +
    "numberValue",
         191  +
    2,
         192  +
);
         193  +
static MYUNION_MEMBER_BLOBVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         194  +
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#MyUnion$blobValue", "aws.protocoltests.restjson", "MyUnion"),
         195  +
    ::aws_smithy_schema::ShapeType::Blob,
         196  +
    "blobValue",
         197  +
    3,
         198  +
);
         199  +
static MYUNION_MEMBER_TIMESTAMPVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         200  +
    ::aws_smithy_schema::ShapeId::from_static(
         201  +
        "aws.protocoltests.restjson#MyUnion$timestampValue",
         202  +
        "aws.protocoltests.restjson",
         203  +
        "MyUnion",
         204  +
    ),
         205  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         206  +
    "timestampValue",
         207  +
    4,
         208  +
);
         209  +
static MYUNION_MEMBER_ENUMVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         210  +
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#MyUnion$enumValue", "aws.protocoltests.restjson", "MyUnion"),
         211  +
    ::aws_smithy_schema::ShapeType::String,
         212  +
    "enumValue",
         213  +
    5,
         214  +
);
         215  +
static MYUNION_MEMBER_LISTVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         216  +
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#MyUnion$listValue", "aws.protocoltests.restjson", "MyUnion"),
         217  +
    ::aws_smithy_schema::ShapeType::List,
         218  +
    "listValue",
         219  +
    6,
         220  +
);
         221  +
static MYUNION_MEMBER_MAPVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         222  +
    ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restjson#MyUnion$mapValue", "aws.protocoltests.restjson", "MyUnion"),
         223  +
    ::aws_smithy_schema::ShapeType::Map,
         224  +
    "mapValue",
         225  +
    7,
         226  +
);
         227  +
static MYUNION_MEMBER_STRUCTUREVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         228  +
    ::aws_smithy_schema::ShapeId::from_static(
         229  +
        "aws.protocoltests.restjson#MyUnion$structureValue",
         230  +
        "aws.protocoltests.restjson",
         231  +
        "MyUnion",
         232  +
    ),
         233  +
    ::aws_smithy_schema::ShapeType::Structure,
         234  +
    "structureValue",
         235  +
    8,
         236  +
);
         237  +
static MYUNION_MEMBER_RENAMEDSTRUCTUREVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         238  +
    ::aws_smithy_schema::ShapeId::from_static(
         239  +
        "aws.protocoltests.restjson#MyUnion$renamedStructureValue",
         240  +
        "aws.protocoltests.restjson",
         241  +
        "MyUnion",
         242  +
    ),
         243  +
    ::aws_smithy_schema::ShapeType::Structure,
         244  +
    "renamedStructureValue",
         245  +
    9,
         246  +
);
         247  +
static MYUNION_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
         248  +
    MYUNION_SCHEMA_ID,
         249  +
    ::aws_smithy_schema::ShapeType::Union,
         250  +
    &[
         251  +
        &MYUNION_MEMBER_STRINGVALUE,
         252  +
        &MYUNION_MEMBER_BOOLEANVALUE,
         253  +
        &MYUNION_MEMBER_NUMBERVALUE,
         254  +
        &MYUNION_MEMBER_BLOBVALUE,
         255  +
        &MYUNION_MEMBER_TIMESTAMPVALUE,
         256  +
        &MYUNION_MEMBER_ENUMVALUE,
         257  +
        &MYUNION_MEMBER_LISTVALUE,
         258  +
        &MYUNION_MEMBER_MAPVALUE,
         259  +
        &MYUNION_MEMBER_STRUCTUREVALUE,
         260  +
        &MYUNION_MEMBER_RENAMEDSTRUCTUREVALUE,
         261  +
    ],
         262  +
);
         263  +
impl MyUnion {
         264  +
    /// The schema for this shape.
         265  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &MYUNION_SCHEMA;
         266  +
}
         267  +
impl ::aws_smithy_schema::serde::SerializableStruct for MyUnion {
         268  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         269  +
    fn serialize_members(
         270  +
        &self,
         271  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         272  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         273  +
        match self {
         274  +
            Self::StringValue(val) => {
         275  +
                ser.write_string(&MYUNION_MEMBER_STRINGVALUE, val)?;
         276  +
            }
         277  +
            Self::BooleanValue(val) => {
         278  +
                ser.write_boolean(&MYUNION_MEMBER_BOOLEANVALUE, *val)?;
         279  +
            }
         280  +
            Self::NumberValue(val) => {
         281  +
                ser.write_integer(&MYUNION_MEMBER_NUMBERVALUE, *val)?;
         282  +
            }
         283  +
            Self::BlobValue(val) => {
         284  +
                ser.write_blob(&MYUNION_MEMBER_BLOBVALUE, val)?;
         285  +
            }
         286  +
            Self::TimestampValue(val) => {
         287  +
                ser.write_timestamp(&MYUNION_MEMBER_TIMESTAMPVALUE, val)?;
         288  +
            }
         289  +
            Self::EnumValue(val) => {
         290  +
                ser.write_string(&MYUNION_MEMBER_ENUMVALUE, val.as_str())?;
         291  +
            }
         292  +
            Self::ListValue(val) => {
         293  +
                ser.write_string_list(&MYUNION_MEMBER_LISTVALUE, val)?;
         294  +
            }
         295  +
            Self::MapValue(val) => {
         296  +
                ser.write_string_string_map(&MYUNION_MEMBER_MAPVALUE, val)?;
         297  +
            }
         298  +
            Self::StructureValue(val) => {
         299  +
                ser.write_struct(&MYUNION_MEMBER_STRUCTUREVALUE, val)?;
         300  +
            }
         301  +
            Self::RenamedStructureValue(val) => {
         302  +
                ser.write_struct(&MYUNION_MEMBER_RENAMEDSTRUCTUREVALUE, val)?;
         303  +
            }
         304  +
            Self::Unknown => return Err(::aws_smithy_schema::serde::SerdeError::custom("cannot serialize unknown union variant")),
         305  +
        }
         306  +
        Ok(())
         307  +
    }
         308  +
}
         309  +
impl MyUnion {
         310  +
    /// Deserializes this union from a [`ShapeDeserializer`].
         311  +
    pub fn deserialize(
         312  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         313  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         314  +
        let mut result: ::std::option::Option<Self> = ::std::option::Option::None;
         315  +
        #[allow(unused_variables, unreachable_code, clippy::single_match, clippy::match_single_binding)]
         316  +
        deserializer.read_struct(&MYUNION_SCHEMA, &mut |member, deser| {
         317  +
            result = ::std::option::Option::Some(match member.member_index() {
         318  +
                Some(0) => Self::StringValue(deser.read_string(member)?),
         319  +
                Some(1) => Self::BooleanValue(deser.read_boolean(member)?),
         320  +
                Some(2) => Self::NumberValue(deser.read_integer(member)?),
         321  +
                Some(3) => Self::BlobValue(deser.read_blob(member)?),
         322  +
                Some(4) => Self::TimestampValue(deser.read_timestamp(member)?),
         323  +
                Some(5) => Self::EnumValue(crate::types::FooEnum::from(deser.read_string(member)?.as_str())),
         324  +
                Some(6) => Self::ListValue(deser.read_string_list(member)?),
         325  +
                Some(7) => Self::MapValue(deser.read_string_string_map(member)?),
         326  +
                Some(8) => Self::StructureValue(crate::types::GreetingStruct::deserialize(deser)?),
         327  +
                Some(9) => Self::RenamedStructureValue(crate::types::RenamedGreeting::deserialize(deser)?),
         328  +
                _ => Self::Unknown,
         329  +
            });
         330  +
            Ok(())
         331  +
        })?;
         332  +
        result.ok_or_else(|| ::aws_smithy_schema::serde::SerdeError::custom("expected a union variant"))
         333  +
    }
         334  +
}

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

@@ -39,39 +125,136 @@
   59     59   
            ser.write_string(&NESTEDPAYLOAD_MEMBER_GREETING, val)?;
   60     60   
        }
   61     61   
        if let Some(ref val) = self.name {
   62     62   
            ser.write_string(&NESTEDPAYLOAD_MEMBER_NAME, val)?;
   63     63   
        }
   64     64   
        Ok(())
   65     65   
    }
   66     66   
}
   67     67   
impl NestedPayload {
   68     68   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   69         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   70         -
        deserializer: &mut D,
          69  +
    pub fn deserialize(
          70  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   71     71   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   72     72   
        #[allow(unused_variables, unused_mut)]
   73     73   
        let mut builder = Self::builder();
   74     74   
        #[allow(
   75     75   
            unused_variables,
   76     76   
            unreachable_code,
   77     77   
            clippy::single_match,
   78     78   
            clippy::match_single_binding,
   79     79   
            clippy::diverging_sub_expression
   80     80   
        )]
   81         -
        deserializer.read_struct(&NESTEDPAYLOAD_SCHEMA, (), |_, member, deser| {
          81  +
        deserializer.read_struct(&NESTEDPAYLOAD_SCHEMA, &mut |member, deser| {
   82     82   
            match member.member_index() {
   83     83   
                Some(0) => {
   84     84   
                    builder.greeting = Some(deser.read_string(member)?);
   85     85   
                }
   86     86   
                Some(1) => {
   87     87   
                    builder.name = Some(deser.read_string(member)?);
   88     88   
                }
   89     89   
                _ => {}
   90     90   
            }
   91     91   
            Ok(())
   92     92   
        })?;
   93     93   
        Ok(builder.build())
   94     94   
    }
   95     95   
}
          96  +
impl NestedPayload {
          97  +
    /// Deserializes this structure from a body deserializer and HTTP response.
          98  +
    pub fn deserialize_with_response(
          99  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         100  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         101  +
        _status: u16,
         102  +
        _body: &[u8],
         103  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         104  +
        Self::deserialize(deserializer)
         105  +
    }
         106  +
}
   96    107   
impl NestedPayload {
   97    108   
    /// Creates a new builder-style object to manufacture [`NestedPayload`](crate::types::NestedPayload).
   98    109   
    pub fn builder() -> crate::types::builders::NestedPayloadBuilder {
   99    110   
        crate::types::builders::NestedPayloadBuilder::default()
  100    111   
    }
  101    112   
}
  102    113   
  103    114   
/// A builder for [`NestedPayload`](crate::types::NestedPayload).
  104    115   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  105    116   
#[non_exhaustive]