Client Test

Client Test

rev. 163d4d6410694aaf071424777ecbecd050925f36 (ignoring whitespace)

Files changed:

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

@@ -1,0 +116,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub(crate) fn de_default_format_header(
    3         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
    4         -
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
    5         -
    let headers = header_map.get_all("X-defaultFormat");
    6         -
    let var_1: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?;
    7         -
    if var_1.len() > 1 {
    8         -
        Err(::aws_smithy_http::header::ParseError::new(format!(
    9         -
            "expected one item but found {}",
   10         -
            var_1.len()
   11         -
        )))
   12         -
    } else {
   13         -
        let mut var_1 = var_1;
   14         -
        Ok(var_1.pop())
   15         -
    }
   16         -
}
   17         -
   18         -
pub(crate) fn de_member_date_time_header(
   19         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
   20         -
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
   21         -
    let headers = header_map.get_all("X-memberDateTime");
   22         -
    let var_2: Vec<::aws_smithy_types::DateTime> =
   23         -
        ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::DateTimeWithOffset)?;
   24         -
    if var_2.len() > 1 {
   25         -
        Err(::aws_smithy_http::header::ParseError::new(format!(
   26         -
            "expected one item but found {}",
   27         -
            var_2.len()
   28         -
        )))
   29         -
    } else {
   30         -
        let mut var_2 = var_2;
   31         -
        Ok(var_2.pop())
   32         -
    }
   33         -
}
   34         -
   35         -
pub(crate) fn de_member_epoch_seconds_header(
   36         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
   37         -
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
   38         -
    let headers = header_map.get_all("X-memberEpochSeconds");
   39         -
    let var_3: Vec<::aws_smithy_types::DateTime> =
   40         -
        ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::EpochSeconds)?;
   41         -
    if var_3.len() > 1 {
   42         -
        Err(::aws_smithy_http::header::ParseError::new(format!(
   43         -
            "expected one item but found {}",
   44         -
            var_3.len()
   45         -
        )))
   46         -
    } else {
   47         -
        let mut var_3 = var_3;
   48         -
        Ok(var_3.pop())
   49         -
    }
   50         -
}
   51         -
   52         -
pub(crate) fn de_member_http_date_header(
   53         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
   54         -
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
   55         -
    let headers = header_map.get_all("X-memberHttpDate");
   56         -
    let var_4: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?;
   57         -
    if var_4.len() > 1 {
   58         -
        Err(::aws_smithy_http::header::ParseError::new(format!(
   59         -
            "expected one item but found {}",
   60         -
            var_4.len()
   61         -
        )))
   62         -
    } else {
   63         -
        let mut var_4 = var_4;
   64         -
        Ok(var_4.pop())
   65         -
    }
   66         -
}
   67         -
   68         -
pub(crate) fn de_target_date_time_header(
   69         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
   70         -
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
   71         -
    let headers = header_map.get_all("X-targetDateTime");
   72         -
    let var_5: Vec<::aws_smithy_types::DateTime> =
   73         -
        ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::DateTimeWithOffset)?;
   74         -
    if var_5.len() > 1 {
   75         -
        Err(::aws_smithy_http::header::ParseError::new(format!(
   76         -
            "expected one item but found {}",
   77         -
            var_5.len()
   78         -
        )))
   79         -
    } else {
   80         -
        let mut var_5 = var_5;
   81         -
        Ok(var_5.pop())
   82         -
    }
   83         -
}
   84         -
   85         -
pub(crate) fn de_target_epoch_seconds_header(
   86         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
   87         -
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
   88         -
    let headers = header_map.get_all("X-targetEpochSeconds");
   89         -
    let var_6: Vec<::aws_smithy_types::DateTime> =
   90         -
        ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::EpochSeconds)?;
   91         -
    if var_6.len() > 1 {
   92         -
        Err(::aws_smithy_http::header::ParseError::new(format!(
   93         -
            "expected one item but found {}",
   94         -
            var_6.len()
   95         -
        )))
   96         -
    } else {
   97         -
        let mut var_6 = var_6;
   98         -
        Ok(var_6.pop())
   99         -
    }
  100         -
}
  101         -
  102         -
pub(crate) fn de_target_http_date_header(
  103         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
  104         -
) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
  105         -
    let headers = header_map.get_all("X-targetHttpDate");
  106         -
    let var_7: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?;
  107         -
    if var_7.len() > 1 {
  108         -
        Err(::aws_smithy_http::header::ParseError::new(format!(
  109         -
            "expected one item but found {}",
  110         -
            var_7.len()
  111         -
        )))
  112         -
    } else {
  113         -
        let mut var_7 = var_7;
  114         -
        Ok(var_7.pop())
  115         -
    }
  116         -
}

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

@@ -1,0 +40,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub(crate) fn de_timestamp_list<'a, I>(
    3         -
    tokens: &mut ::std::iter::Peekable<I>,
    4         -
    _value: &'a [u8],
    5         -
) -> ::std::result::Result<Option<::std::vec::Vec<::aws_smithy_types::DateTime>>, ::aws_smithy_json::deserialize::error::DeserializeError>
    6         -
where
    7         -
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
    8         -
{
    9         -
    match tokens.next().transpose()? {
   10         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   11         -
        Some(::aws_smithy_json::deserialize::Token::StartArray { .. }) => {
   12         -
            let mut items = Vec::new();
   13         -
            loop {
   14         -
                match tokens.peek() {
   15         -
                    Some(Ok(::aws_smithy_json::deserialize::Token::EndArray { .. })) => {
   16         -
                        tokens.next().transpose().unwrap();
   17         -
                        break;
   18         -
                    }
   19         -
                    _ => {
   20         -
                        let value = ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
   21         -
                            tokens.next(),
   22         -
                            ::aws_smithy_types::date_time::Format::EpochSeconds,
   23         -
                        )?;
   24         -
                        if let Some(value) = value {
   25         -
                            items.push(value);
   26         -
                        } else {
   27         -
                            return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   28         -
                                "dense list cannot contain null values",
   29         -
                            ));
   30         -
                        }
   31         -
                    }
   32         -
                }
   33         -
            }
   34         -
            Ok(Some(items))
   35         -
        }
   36         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   37         -
            "expected start array or null",
   38         -
        )),
   39         -
    }
   40         -
}

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

@@ -1,0 +38,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub fn ser_top_level(
    3         -
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4         -
    input: &crate::types::TopLevel,
    5         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
    6         -
    {
    7         -
        #[allow(unused_mut)]
    8         -
        let mut object_1 = object.key("dialog").start_object();
    9         -
        crate::protocol_serde::shape_dialog::ser_dialog(&mut object_1, &input.dialog)?;
   10         -
        object_1.finish();
   11         -
    }
   12         -
    {
   13         -
        let mut array_2 = object.key("dialogList").start_array();
   14         -
        for item_3 in &input.dialog_list {
   15         -
            {
   16         -
                #[allow(unused_mut)]
   17         -
                let mut object_4 = array_2.value().start_object();
   18         -
                crate::protocol_serde::shape_dialog::ser_dialog(&mut object_4, item_3)?;
   19         -
                object_4.finish();
   20         -
            }
   21         -
        }
   22         -
        array_2.finish();
   23         -
    }
   24         -
    {
   25         -
        #[allow(unused_mut)]
   26         -
        let mut object_5 = object.key("dialogMap").start_object();
   27         -
        for (key_6, value_7) in &input.dialog_map {
   28         -
            {
   29         -
                #[allow(unused_mut)]
   30         -
                let mut object_8 = object_5.key(key_6.as_str()).start_object();
   31         -
                crate::protocol_serde::shape_dialog::ser_dialog(&mut object_8, value_7)?;
   32         -
                object_8.finish();
   33         -
            }
   34         -
        }
   35         -
        object_5.finish();
   36         -
    }
   37         -
    Ok(())
   38         -
}

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

@@ -1,0 +94,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub fn ser_union_payload(
    3         -
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4         -
    input: &crate::types::UnionPayload,
    5         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
    6         -
    match input {
    7         -
        crate::types::UnionPayload::Greeting(inner) => {
    8         -
            object.key("greeting").string(inner.as_str());
    9         -
        }
   10         -
        crate::types::UnionPayload::Unknown => return Err(::aws_smithy_types::error::operation::SerializationError::unknown_variant("UnionPayload")),
   11         -
    }
   12         -
    Ok(())
   13         -
}
   14         -
   15         -
pub(crate) fn de_union_payload_payload(
   16         -
    _value: &[u8],
   17         -
) -> ::std::result::Result<crate::types::UnionPayload, ::aws_smithy_json::deserialize::error::DeserializeError> {
   18         -
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(_value)).peekable();
   19         -
    let tokens = &mut tokens_owned;
   20         -
    let result = crate::protocol_serde::shape_union_payload::de_union_payload(tokens, _value)?
   21         -
        .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("expected payload member value"));
   22         -
    if tokens.next().is_some() {
   23         -
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   24         -
            "found more JSON tokens after completing parsing",
   25         -
        ));
   26         -
    }
   27         -
    result
   28         -
}
   29         -
   30         -
pub(crate) fn de_union_payload<'a, I>(
   31         -
    tokens: &mut ::std::iter::Peekable<I>,
   32         -
    _value: &'a [u8],
   33         -
) -> ::std::result::Result<Option<crate::types::UnionPayload>, ::aws_smithy_json::deserialize::error::DeserializeError>
   34         -
where
   35         -
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
   36         -
{
   37         -
    let mut variant = None;
   38         -
    match tokens.next().transpose()? {
   39         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
   40         -
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => loop {
   41         -
            match tokens.next().transpose()? {
   42         -
                Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   43         -
                Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
   44         -
                    if let ::std::option::Option::Some(::std::result::Result::Ok(::aws_smithy_json::deserialize::Token::ValueNull { .. })) =
   45         -
                        tokens.peek()
   46         -
                    {
   47         -
                        let _ = tokens.next().expect("peek returned a token")?;
   48         -
                        continue;
   49         -
                    }
   50         -
                    let key = key.to_unescaped()?;
   51         -
                    if key == "__type" {
   52         -
                        ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
   53         -
                        continue;
   54         -
                    }
   55         -
                    if variant.is_some() {
   56         -
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   57         -
                            "encountered mixed variants in union",
   58         -
                        ));
   59         -
                    }
   60         -
                    variant = match key.as_ref() {
   61         -
                        "greeting" => Some(crate::types::UnionPayload::Greeting(
   62         -
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   63         -
                                .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   64         -
                                .transpose()?
   65         -
                                .ok_or_else(|| {
   66         -
                                    ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'greeting' cannot be null")
   67         -
                                })?,
   68         -
                        )),
   69         -
                        _ => {
   70         -
                            ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
   71         -
                            Some(crate::types::UnionPayload::Unknown)
   72         -
                        }
   73         -
                    };
   74         -
                }
   75         -
                other => {
   76         -
                    return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   77         -
                        "expected object key or end object, found: {other:?}"
   78         -
                    )))
   79         -
                }
   80         -
            }
   81         -
        },
   82         -
        _ => {
   83         -
            return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   84         -
                "expected start object or null",
   85         -
            ))
   86         -
        }
   87         -
    }
   88         -
    if variant.is_none() {
   89         -
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   90         -
            "Union did not contain a valid variant.",
   91         -
        ));
   92         -
    }
   93         -
    Ok(variant)
   94         -
}

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

@@ -1,0 +99,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub(crate) fn de_union_with_json_name<'a, I>(
    3         -
    tokens: &mut ::std::iter::Peekable<I>,
    4         -
    _value: &'a [u8],
    5         -
) -> ::std::result::Result<Option<crate::types::UnionWithJsonName>, ::aws_smithy_json::deserialize::error::DeserializeError>
    6         -
where
    7         -
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
    8         -
{
    9         -
    let mut variant = None;
   10         -
    match tokens.next().transpose()? {
   11         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
   12         -
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => loop {
   13         -
            match tokens.next().transpose()? {
   14         -
                Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   15         -
                Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
   16         -
                    if let ::std::option::Option::Some(::std::result::Result::Ok(::aws_smithy_json::deserialize::Token::ValueNull { .. })) =
   17         -
                        tokens.peek()
   18         -
                    {
   19         -
                        let _ = tokens.next().expect("peek returned a token")?;
   20         -
                        continue;
   21         -
                    }
   22         -
                    let key = key.to_unescaped()?;
   23         -
                    if key == "__type" {
   24         -
                        ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
   25         -
                        continue;
   26         -
                    }
   27         -
                    if variant.is_some() {
   28         -
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   29         -
                            "encountered mixed variants in union",
   30         -
                        ));
   31         -
                    }
   32         -
                    variant = match key.as_ref() {
   33         -
                        "FOO" => Some(crate::types::UnionWithJsonName::Foo(
   34         -
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   35         -
                                .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   36         -
                                .transpose()?
   37         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'foo' cannot be null"))?,
   38         -
                        )),
   39         -
                        "bar" => Some(crate::types::UnionWithJsonName::Bar(
   40         -
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   41         -
                                .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   42         -
                                .transpose()?
   43         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'bar' cannot be null"))?,
   44         -
                        )),
   45         -
                        "_baz" => Some(crate::types::UnionWithJsonName::Baz(
   46         -
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   47         -
                                .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   48         -
                                .transpose()?
   49         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'baz' cannot be null"))?,
   50         -
                        )),
   51         -
                        _ => {
   52         -
                            ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
   53         -
                            Some(crate::types::UnionWithJsonName::Unknown)
   54         -
                        }
   55         -
                    };
   56         -
                }
   57         -
                other => {
   58         -
                    return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   59         -
                        "expected object key or end object, found: {other:?}"
   60         -
                    )))
   61         -
                }
   62         -
            }
   63         -
        },
   64         -
        _ => {
   65         -
            return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   66         -
                "expected start object or null",
   67         -
            ))
   68         -
        }
   69         -
    }
   70         -
    if variant.is_none() {
   71         -
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   72         -
            "Union did not contain a valid variant.",
   73         -
        ));
   74         -
    }
   75         -
    Ok(variant)
   76         -
}
   77         -
   78         -
pub fn ser_union_with_json_name(
   79         -
    object_2: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
   80         -
    input: &crate::types::UnionWithJsonName,
   81         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
   82         -
    match input {
   83         -
        crate::types::UnionWithJsonName::Foo(inner) => {
   84         -
            object_2.key("FOO").string(inner.as_str());
   85         -
        }
   86         -
        crate::types::UnionWithJsonName::Bar(inner) => {
   87         -
            object_2.key("bar").string(inner.as_str());
   88         -
        }
   89         -
        crate::types::UnionWithJsonName::Baz(inner) => {
   90         -
            object_2.key("_baz").string(inner.as_str());
   91         -
        }
   92         -
        crate::types::UnionWithJsonName::Unknown => {
   93         -
            return Err(::aws_smithy_types::error::operation::SerializationError::unknown_variant(
   94         -
                "UnionWithJsonName",
   95         -
            ))
   96         -
        }
   97         -
    }
   98         -
    Ok(())
   99         -
}

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]