Server Test

Server Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-server-test/s3/rust-server-codegen/src/lib.rs

@@ -1,1 +52,53 @@
   13     13   
#![allow(clippy::result_large_err)]
   14     14   
#![allow(clippy::unnecessary_map_on_constructor)]
   15     15   
#![allow(rustdoc::bare_urls)]
   16     16   
#![allow(rustdoc::redundant_explicit_links)]
   17     17   
#![allow(rustdoc::invalid_html_tags)]
   18     18   
#![forbid(unsafe_code)]
   19     19   
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
   20     20   
//! s3
   21     21   
   22     22   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
          23  +
/* ServerRootGenerator.kt:65 */
   23     24   
//! A fast and customizable Rust implementation of the AmazonS3 Smithy service.
   24     25   
//!
   25     26   
//! # Using AmazonS3
   26     27   
//!
   27     28   
//! The primary entrypoint is [`AmazonS3`]: it satisfies the [`Service<http::Request, Response = http::Response>`](::tower::Service)
   28     29   
//! trait and therefore can be handed to a [`hyper` server](https://github.com/hyperium/hyper) via [`AmazonS3::into_make_service`]
   29     30   
//! or used in AWS Lambda
   30     31   
#![cfg_attr(
   31     32   
    feature = "aws-lambda",
   32     33   
    doc = " via [`LambdaHandler`](crate::server::routing::LambdaHandler)."
@@ -182,183 +257,265 @@
  202    203   
//! }
  203    204   
//!
  204    205   
//! ```
  205    206   
//!
  206    207   
//! [`serve`]: https://docs.rs/hyper/0.14.16/hyper/server/struct.Builder.html#method.serve
  207    208   
//! [`tower::make::MakeService`]: https://docs.rs/tower/latest/tower/make/trait.MakeService.html
  208    209   
//! [HTTP binding traits]: https://smithy.io/2.0/spec/http-bindings.html
  209    210   
//! [operations]: https://smithy.io/2.0/spec/service-types.html#operation
  210    211   
//! [hyper server]: https://docs.rs/hyper/latest/hyper/server/index.html
  211    212   
//! [Service]: https://docs.rs/tower-service/latest/tower_service/trait.Service.html
         213  +
/* ServerRootGenerator.kt:261 */
  212    214   
pub use crate::service::{
  213    215   
    AmazonS3, AmazonS3Builder, AmazonS3Config, AmazonS3ConfigBuilder, MissingOperationsError,
  214    216   
};
  215    217   
  216         -
/// Contains the types that are re-exported from the `aws-smithy-http-server` crate.
         218  +
/// /* ServerRustModule.kt:55 */Contains the types that are re-exported from the `aws-smithy-http-server` crate.
  217    219   
pub mod server {
  218    220   
    // Re-export all types from the `aws-smithy-http-server` crate.
  219    221   
    pub use ::aws_smithy_http_server::*;
         222  +
         223  +
    /* CodegenDelegator.kt:200 */
  220    224   
}
  221    225   
         226  +
/* CrateVersionCustomization.kt:23 */
  222    227   
/// Crate version number.
  223    228   
pub static PKG_VERSION: &str = env!("CARGO_PKG_VERSION");
  224    229   
  225         -
/// All error types that operations can return. Documentation on these types is copied from the model.
         230  +
/// /* ServerRustModule.kt:55 */All error types that operations can return. Documentation on these types is copied from the model.
  226    231   
pub mod error;
  227    232   
  228         -
/// Input structures for operations. Documentation on these types is copied from the model.
         233  +
/// /* ServerRustModule.kt:55 */Input structures for operations. Documentation on these types is copied from the model.
  229    234   
pub mod input;
  230    235   
  231         -
/// Data structures used by operation inputs/outputs. Documentation on these types is copied from the model.
         236  +
/// /* ServerRustModule.kt:55 */Data structures used by operation inputs/outputs. Documentation on these types is copied from the model.
  232    237   
pub mod model;
  233    238   
  234         -
/// All operations that this crate can perform.
         239  +
/// /* ServerRustModule.kt:55 */All operations that this crate can perform.
  235    240   
pub mod operation;
  236    241   
         242  +
/* ServerRustModule.kt:79 */
  237    243   
/// A collection of types representing each operation defined in the service closure.
  238    244   
///
  239    245   
/// The [plugin system](::aws_smithy_http_server::plugin) makes use of these
  240    246   
/// [zero-sized types](https://doc.rust-lang.org/nomicon/exotic-sizes.html#zero-sized-types-zsts) (ZSTs) to
  241    247   
/// parameterize [`Plugin`](::aws_smithy_http_server::plugin::Plugin) implementations. Their traits, such as
  242    248   
/// [`OperationShape`](::aws_smithy_http_server::operation::OperationShape), can be used to provide
  243    249   
/// operation specific information to the [`Layer`](::tower::Layer) being applied.
  244    250   
pub mod operation_shape;
  245    251   
  246         -
/// Output structures for operations. Documentation on these types is copied from the model.
         252  +
/// /* ServerRustModule.kt:55 */Output structures for operations. Documentation on these types is copied from the model.
  247    253   
pub mod output;
  248    254   
         255  +
/* RustModule.kt:172 */
  249    256   
mod service;
  250    257   
  251         -
/// Data primitives referenced by other data types.
         258  +
/// /* ServerRustModule.kt:55 */Data primitives referenced by other data types.
  252    259   
pub mod types;
  253    260   
  254         -
/// Constrained types for constrained shapes.
         261  +
/// /* ServerRustModule.kt:55 */Constrained types for constrained shapes.
         262  +
/* RustModule.kt:172 */
  255    263   
mod constrained;
  256    264   
  257    265   
pub(crate) mod protocol_serde;

tmp-codegen-diff/codegen-server-test/s3/rust-server-codegen/src/model.rs

@@ -1,1 +853,1177 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// Describes one specific validation failure for an input member.
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */Describes one specific validation failure for an input member.
           4  +
/* RustType.kt:516 */
    4      5   
#[derive(
    5      6   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
    6      7   
)]
    7         -
pub struct ValidationExceptionField {
    8         -
    /// A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
           8  +
pub /* StructureGenerator.kt:201 */ struct ValidationExceptionField {
           9  +
    /// /* StructureGenerator.kt:231 */A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
    9     10   
    pub path: ::std::string::String,
   10         -
    /// A detailed description of the validation failure.
          11  +
    /// /* StructureGenerator.kt:231 */A detailed description of the validation failure.
   11     12   
    pub message: ::std::string::String,
          13  +
    /* StructureGenerator.kt:201 */
   12     14   
}
          15  +
/* StructureGenerator.kt:135 */
   13     16   
impl ValidationExceptionField {
   14         -
    /// A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
          17  +
    /// /* StructureGenerator.kt:231 */A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
          18  +
    /* StructureGenerator.kt:166 */
   15     19   
    pub fn path(&self) -> &str {
          20  +
        /* StructureGenerator.kt:171 */
   16     21   
        use std::ops::Deref;
   17     22   
        self.path.deref()
          23  +
        /* StructureGenerator.kt:166 */
   18     24   
    }
   19         -
    /// A detailed description of the validation failure.
          25  +
    /// /* StructureGenerator.kt:231 */A detailed description of the validation failure.
          26  +
    /* StructureGenerator.kt:166 */
   20     27   
    pub fn message(&self) -> &str {
          28  +
        /* StructureGenerator.kt:171 */
   21     29   
        use std::ops::Deref;
   22     30   
        self.message.deref()
          31  +
        /* StructureGenerator.kt:166 */
   23     32   
    }
          33  +
    /* StructureGenerator.kt:135 */
   24     34   
}
          35  +
/* ServerCodegenVisitor.kt:345 */
   25     36   
impl ValidationExceptionField {
   26         -
    /// Creates a new builder-style object to manufacture [`ValidationExceptionField`](crate::model::ValidationExceptionField).
          37  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`ValidationExceptionField`](crate::model::ValidationExceptionField).
          38  +
    /* ServerBuilderGenerator.kt:295 */
   27     39   
    pub fn builder() -> crate::model::validation_exception_field::Builder {
          40  +
        /* ServerBuilderGenerator.kt:296 */
   28     41   
        crate::model::validation_exception_field::Builder::default()
          42  +
        /* ServerBuilderGenerator.kt:295 */
   29     43   
    }
          44  +
    /* ServerCodegenVisitor.kt:345 */
   30     45   
}
   31     46   
          47  +
/* ConstrainedStringGenerator.kt:82 */
   32     48   
#[allow(missing_docs)] // documentation missing in model
   33         -
///
          49  +
/// /* ConstrainedStringGenerator.kt:83 */
   34     50   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
   35     51   
/// [constraint traits]. Use [`ObjectKey::try_from`] to construct values of this type.
   36     52   
///
   37     53   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
   38     54   
///
          55  +
/* RustType.kt:516 */
   39     56   
#[derive(
   40     57   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   41     58   
)]
   42         -
pub struct ObjectKey(pub(crate) ::std::string::String);
          59  +
pub /* ConstrainedStringGenerator.kt:86 */ struct ObjectKey(pub(crate) ::std::string::String);
          60  +
/* ConstrainedStringGenerator.kt:90 */
   43     61   
impl ObjectKey {
   44     62   
    /// Extracts a string slice containing the entire underlying `String`.
   45     63   
    pub fn as_str(&self) -> &str {
   46     64   
        &self.0
   47     65   
    }
   48     66   
   49     67   
    /// Returns an immutable reference to the underlying [`::std::string::String`].
   50     68   
    pub fn inner(&self) -> &::std::string::String {
   51     69   
        &self.0
   52     70   
    }
   53     71   
   54     72   
    /// Consumes the value, returning the underlying [`::std::string::String`].
   55     73   
    pub fn into_inner(self) -> ::std::string::String {
   56     74   
        self.0
   57     75   
    }
   58     76   
}
          77  +
/* TraitInfo.kt:41 */
   59     78   
impl ObjectKey {
   60     79   
    fn check_length(
   61     80   
        string: &str,
   62     81   
    ) -> ::std::result::Result<(), crate::model::object_key::ConstraintViolation> {
   63     82   
        let length = string.chars().count();
   64     83   
   65     84   
        if 1 <= length {
   66     85   
            Ok(())
   67     86   
        } else {
   68     87   
            Err(crate::model::object_key::ConstraintViolation::Length(
   69     88   
                length,
   70     89   
            ))
   71     90   
        }
   72     91   
    }
   73     92   
}
          93  +
/* TraitInfo.kt:57 */
   74     94   
impl ::std::convert::TryFrom<::std::string::String> for ObjectKey {
   75     95   
    type Error = crate::model::object_key::ConstraintViolation;
   76     96   
   77     97   
    /// Constructs a `ObjectKey` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
   78     98   
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
   79     99   
        Self::check_length(&value)?;
   80    100   
   81    101   
        Ok(Self(value))
   82    102   
    }
   83    103   
}
         104  +
/* ConstrainedStringGenerator.kt:112 */
   84    105   
impl crate::constrained::Constrained for ObjectKey {
   85    106   
    type Unconstrained = ::std::string::String;
   86    107   
}
   87    108   
   88    109   
impl ::std::convert::From<::std::string::String>
   89    110   
    for crate::constrained::MaybeConstrained<crate::model::ObjectKey>
   90    111   
{
   91    112   
    fn from(value: ::std::string::String) -> Self {
   92    113   
        Self::Unconstrained(value)
   93    114   
    }
   94    115   
}
   95    116   
   96    117   
impl ::std::fmt::Display for ObjectKey {
   97    118   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
   98    119   
        self.0.fmt(f)
   99    120   
    }
  100    121   
}
  101    122   
  102    123   
impl ::std::convert::From<ObjectKey> for ::std::string::String {
  103    124   
    fn from(value: ObjectKey) -> Self {
  104    125   
        value.into_inner()
  105    126   
    }
  106    127   
}
  107    128   
         129  +
/* EnumGenerator.kt:154 */
  108    130   
#[allow(missing_docs)] // documentation missing in model
         131  +
/* RustType.kt:516 */
  109    132   
#[derive(
  110    133   
    ::std::clone::Clone,
  111    134   
    ::std::cmp::Eq,
  112    135   
    ::std::cmp::Ord,
  113    136   
    ::std::cmp::PartialEq,
  114    137   
    ::std::cmp::PartialOrd,
  115    138   
    ::std::fmt::Debug,
  116    139   
    ::std::hash::Hash,
  117    140   
)]
  118         -
pub enum BucketLocationConstraint {
         141  +
pub /* EnumGenerator.kt:267 */ enum BucketLocationConstraint {
         142  +
    /* EnumGenerator.kt:154 */
  119    143   
    #[allow(missing_docs)] // documentation missing in model
         144  +
    /* EnumGenerator.kt:143 */
  120    145   
    UsWest2,
         146  +
    /* EnumGenerator.kt:267 */
  121    147   
}
  122         -
/// See [`BucketLocationConstraint`](crate::model::BucketLocationConstraint).
         148  +
/// /* CodegenDelegator.kt:51 */See [`BucketLocationConstraint`](crate::model::BucketLocationConstraint).
  123    149   
pub mod bucket_location_constraint {
  124    150   
    #[derive(Debug, PartialEq)]
  125    151   
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
  126    152   
  127    153   
    impl ::std::fmt::Display for ConstraintViolation {
  128    154   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  129    155   
            write!(
  130    156   
                f,
  131    157   
                r#"Value provided for 'com.amazonaws.s3#BucketLocationConstraint' failed to satisfy constraint: Member must satisfy enum value set: [us-west-2]"#
  132    158   
            )
  133    159   
        }
  134    160   
    }
  135    161   
  136    162   
    impl ::std::error::Error for ConstraintViolation {}
         163  +
         164  +
    /* ServerEnumGenerator.kt:46 */
  137    165   
}
         166  +
/* ServerEnumGenerator.kt:85 */
  138    167   
impl ::std::convert::TryFrom<&str> for BucketLocationConstraint {
  139    168   
    type Error = crate::model::bucket_location_constraint::ConstraintViolation;
  140    169   
    fn try_from(
  141    170   
        s: &str,
  142    171   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
  143    172   
        match s {
  144    173   
            "us-west-2" => Ok(BucketLocationConstraint::UsWest2),
  145    174   
            _ => Err(crate::model::bucket_location_constraint::ConstraintViolation(s.to_owned())),
  146    175   
        }
  147    176   
    }
  148    177   
}
  149    178   
impl ::std::convert::TryFrom<::std::string::String> for BucketLocationConstraint {
  150    179   
    type Error = crate::model::bucket_location_constraint::ConstraintViolation;
  151    180   
    fn try_from(
  152    181   
        s: ::std::string::String,
  153    182   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
  154    183   
    {
  155    184   
        s.as_str().try_into()
  156    185   
    }
  157    186   
}
         187  +
/* ServerEnumGenerator.kt:145 */
  158    188   
impl std::str::FromStr for BucketLocationConstraint {
  159    189   
    type Err = crate::model::bucket_location_constraint::ConstraintViolation;
  160    190   
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
  161    191   
        Self::try_from(s)
  162    192   
    }
  163    193   
}
         194  +
/* EnumGenerator.kt:274 */
  164    195   
impl BucketLocationConstraint {
  165    196   
    /// Returns the `&str` value of the enum member.
  166    197   
    pub fn as_str(&self) -> &str {
  167    198   
        match self {
  168    199   
            BucketLocationConstraint::UsWest2 => "us-west-2",
  169    200   
        }
  170    201   
    }
  171    202   
    /// Returns all the `&str` representations of the enum members.
  172    203   
    pub const fn values() -> &'static [&'static str] {
  173    204   
        &["us-west-2"]
  174    205   
    }
  175    206   
}
         207  +
/* EnumGenerator.kt:223 */
  176    208   
impl ::std::convert::AsRef<str> for BucketLocationConstraint {
  177    209   
    fn as_ref(&self) -> &str {
  178    210   
        self.as_str()
  179    211   
    }
  180    212   
}
         213  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
  181    214   
impl crate::constrained::Constrained for BucketLocationConstraint {
  182    215   
    type Unconstrained = ::std::string::String;
  183    216   
}
  184    217   
  185    218   
impl ::std::convert::From<::std::string::String>
  186    219   
    for crate::constrained::MaybeConstrained<crate::model::BucketLocationConstraint>
  187    220   
{
  188    221   
    fn from(value: ::std::string::String) -> Self {
  189    222   
        Self::Unconstrained(value)
  190    223   
    }
  191    224   
}
  192    225   
         226  +
/* EnumGenerator.kt:154 */
  193    227   
#[allow(missing_docs)] // documentation missing in model
         228  +
/* RustType.kt:516 */
  194    229   
#[derive(
  195    230   
    ::std::clone::Clone,
  196    231   
    ::std::cmp::Eq,
  197    232   
    ::std::cmp::Ord,
  198    233   
    ::std::cmp::PartialEq,
  199    234   
    ::std::cmp::PartialOrd,
  200    235   
    ::std::fmt::Debug,
  201    236   
    ::std::hash::Hash,
  202    237   
)]
  203         -
pub enum EncodingType {
         238  +
pub /* EnumGenerator.kt:267 */ enum EncodingType {
         239  +
    /* EnumGenerator.kt:154 */
  204    240   
    #[allow(missing_docs)] // documentation missing in model
         241  +
    /* EnumGenerator.kt:143 */
  205    242   
    Url,
         243  +
    /* EnumGenerator.kt:267 */
  206    244   
}
  207         -
/// See [`EncodingType`](crate::model::EncodingType).
         245  +
/// /* CodegenDelegator.kt:51 */See [`EncodingType`](crate::model::EncodingType).
  208    246   
pub mod encoding_type {
  209    247   
    #[derive(Debug, PartialEq)]
  210    248   
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
  211    249   
  212    250   
    impl ::std::fmt::Display for ConstraintViolation {
  213    251   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  214    252   
            write!(
  215    253   
                f,
  216    254   
                r#"Value provided for 'com.amazonaws.s3#EncodingType' failed to satisfy constraint: Member must satisfy enum value set: [url]"#
  217    255   
            )
  218    256   
        }
  219    257   
    }
  220    258   
  221    259   
    impl ::std::error::Error for ConstraintViolation {}
  222    260   
    impl ConstraintViolation {
  223    261   
        pub(crate) fn as_validation_exception_field(
  224    262   
            self,
  225    263   
            path: ::std::string::String,
  226    264   
        ) -> crate::model::ValidationExceptionField {
  227    265   
            crate::model::ValidationExceptionField {
  228    266   
                message: format!(
  229    267   
                    r#"Value at '{}' failed to satisfy constraint: Member must satisfy enum value set: [url]"#,
  230    268   
                    &path
  231    269   
                ),
  232    270   
                path,
  233    271   
            }
  234    272   
        }
  235    273   
    }
         274  +
         275  +
    /* ServerEnumGenerator.kt:46 */
  236    276   
}
         277  +
/* ServerEnumGenerator.kt:85 */
  237    278   
impl ::std::convert::TryFrom<&str> for EncodingType {
  238    279   
    type Error = crate::model::encoding_type::ConstraintViolation;
  239    280   
    fn try_from(
  240    281   
        s: &str,
  241    282   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
  242    283   
        match s {
  243    284   
            "url" => Ok(EncodingType::Url),
  244    285   
            _ => Err(crate::model::encoding_type::ConstraintViolation(
  245    286   
                s.to_owned(),
  246    287   
            )),
  247    288   
        }
  248    289   
    }
  249    290   
}
  250    291   
impl ::std::convert::TryFrom<::std::string::String> for EncodingType {
  251    292   
    type Error = crate::model::encoding_type::ConstraintViolation;
  252    293   
    fn try_from(
  253    294   
        s: ::std::string::String,
  254    295   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
  255    296   
    {
  256    297   
        s.as_str().try_into()
  257    298   
    }
  258    299   
}
         300  +
/* ServerEnumGenerator.kt:145 */
  259    301   
impl std::str::FromStr for EncodingType {
  260    302   
    type Err = crate::model::encoding_type::ConstraintViolation;
  261    303   
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
  262    304   
        Self::try_from(s)
  263    305   
    }
  264    306   
}
         307  +
/* EnumGenerator.kt:274 */
  265    308   
impl EncodingType {
  266    309   
    /// Returns the `&str` value of the enum member.
  267    310   
    pub fn as_str(&self) -> &str {
  268    311   
        match self {
  269    312   
            EncodingType::Url => "url",
  270    313   
        }
  271    314   
    }
  272    315   
    /// Returns all the `&str` representations of the enum members.
  273    316   
    pub const fn values() -> &'static [&'static str] {
  274    317   
        &["url"]
  275    318   
    }
  276    319   
}
         320  +
/* EnumGenerator.kt:223 */
  277    321   
impl ::std::convert::AsRef<str> for EncodingType {
  278    322   
    fn as_ref(&self) -> &str {
  279    323   
        self.as_str()
  280    324   
    }
  281    325   
}
         326  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
  282    327   
impl crate::constrained::Constrained for EncodingType {
  283    328   
    type Unconstrained = ::std::string::String;
  284    329   
}
  285    330   
  286    331   
impl ::std::convert::From<::std::string::String>
  287    332   
    for crate::constrained::MaybeConstrained<crate::model::EncodingType>
  288    333   
{
  289    334   
    fn from(value: ::std::string::String) -> Self {
  290    335   
        Self::Unconstrained(value)
  291    336   
    }
  292    337   
}
  293    338   
         339  +
/* StructureGenerator.kt:197 */
  294    340   
#[allow(missing_docs)] // documentation missing in model
         341  +
/* RustType.kt:516 */
  295    342   
#[derive(
  296    343   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  297    344   
)]
  298         -
pub struct CommonPrefix {
         345  +
pub /* StructureGenerator.kt:201 */ struct CommonPrefix {
         346  +
    /* StructureGenerator.kt:231 */
  299    347   
    #[allow(missing_docs)] // documentation missing in model
  300    348   
    pub prefix: ::std::option::Option<::std::string::String>,
         349  +
    /* StructureGenerator.kt:201 */
  301    350   
}
         351  +
/* StructureGenerator.kt:135 */
  302    352   
impl CommonPrefix {
         353  +
    /* StructureGenerator.kt:231 */
  303    354   
    #[allow(missing_docs)] // documentation missing in model
         355  +
                           /* StructureGenerator.kt:166 */
  304    356   
    pub fn prefix(&self) -> ::std::option::Option<&str> {
         357  +
        /* StructureGenerator.kt:169 */
  305    358   
        self.prefix.as_deref()
         359  +
        /* StructureGenerator.kt:166 */
  306    360   
    }
         361  +
    /* StructureGenerator.kt:135 */
  307    362   
}
         363  +
/* ServerCodegenVisitor.kt:345 */
  308    364   
impl CommonPrefix {
  309         -
    /// Creates a new builder-style object to manufacture [`CommonPrefix`](crate::model::CommonPrefix).
         365  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`CommonPrefix`](crate::model::CommonPrefix).
         366  +
    /* ServerBuilderGenerator.kt:295 */
  310    367   
    pub fn builder() -> crate::model::common_prefix::Builder {
         368  +
        /* ServerBuilderGenerator.kt:296 */
  311    369   
        crate::model::common_prefix::Builder::default()
         370  +
        /* ServerBuilderGenerator.kt:295 */
  312    371   
    }
         372  +
    /* ServerCodegenVisitor.kt:345 */
  313    373   
}
  314    374   
         375  +
/* StructureGenerator.kt:197 */
  315    376   
#[allow(missing_docs)] // documentation missing in model
         377  +
/* RustType.kt:516 */
  316    378   
#[derive(
  317    379   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  318    380   
)]
  319         -
pub struct Object {
         381  +
pub /* StructureGenerator.kt:201 */ struct Object {
         382  +
    /* StructureGenerator.kt:231 */
  320    383   
    #[allow(missing_docs)] // documentation missing in model
  321    384   
    pub key: ::std::option::Option<crate::model::ObjectKey>,
         385  +
    /* StructureGenerator.kt:231 */
  322    386   
    #[allow(missing_docs)] // documentation missing in model
  323    387   
    pub last_modified: ::std::option::Option<::aws_smithy_types::DateTime>,
         388  +
    /* StructureGenerator.kt:231 */
  324    389   
    #[allow(missing_docs)] // documentation missing in model
  325    390   
    pub e_tag: ::std::option::Option<::std::string::String>,
         391  +
    /* StructureGenerator.kt:231 */
  326    392   
    #[allow(missing_docs)] // documentation missing in model
  327    393   
    pub size: ::std::option::Option<i32>,
         394  +
    /* StructureGenerator.kt:231 */
  328    395   
    #[allow(missing_docs)] // documentation missing in model
  329    396   
    pub storage_class: ::std::option::Option<crate::model::ObjectStorageClass>,
         397  +
    /* StructureGenerator.kt:231 */
  330    398   
    #[allow(missing_docs)] // documentation missing in model
  331    399   
    pub owner: ::std::option::Option<crate::model::Owner>,
         400  +
    /* StructureGenerator.kt:201 */
  332    401   
}
         402  +
/* StructureGenerator.kt:135 */
  333    403   
impl Object {
         404  +
    /* StructureGenerator.kt:231 */
  334    405   
    #[allow(missing_docs)] // documentation missing in model
         406  +
                           /* StructureGenerator.kt:166 */
  335    407   
    pub fn key(&self) -> ::std::option::Option<&crate::model::ObjectKey> {
         408  +
        /* StructureGenerator.kt:170 */
  336    409   
        self.key.as_ref()
         410  +
        /* StructureGenerator.kt:166 */
  337    411   
    }
         412  +
    /* StructureGenerator.kt:231 */
  338    413   
    #[allow(missing_docs)] // documentation missing in model
         414  +
                           /* StructureGenerator.kt:166 */
  339    415   
    pub fn last_modified(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         416  +
        /* StructureGenerator.kt:170 */
  340    417   
        self.last_modified.as_ref()
         418  +
        /* StructureGenerator.kt:166 */
  341    419   
    }
         420  +
    /* StructureGenerator.kt:231 */
  342    421   
    #[allow(missing_docs)] // documentation missing in model
         422  +
                           /* StructureGenerator.kt:166 */
  343    423   
    pub fn e_tag(&self) -> ::std::option::Option<&str> {
         424  +
        /* StructureGenerator.kt:169 */
  344    425   
        self.e_tag.as_deref()
         426  +
        /* StructureGenerator.kt:166 */
  345    427   
    }
         428  +
    /* StructureGenerator.kt:231 */
  346    429   
    #[allow(missing_docs)] // documentation missing in model
         430  +
                           /* StructureGenerator.kt:166 */
  347    431   
    pub fn size(&self) -> ::std::option::Option<i32> {
         432  +
        /* StructureGenerator.kt:168 */
  348    433   
        self.size
         434  +
        /* StructureGenerator.kt:166 */
  349    435   
    }
         436  +
    /* StructureGenerator.kt:231 */
  350    437   
    #[allow(missing_docs)] // documentation missing in model
         438  +
                           /* StructureGenerator.kt:166 */
  351    439   
    pub fn storage_class(&self) -> ::std::option::Option<&crate::model::ObjectStorageClass> {
         440  +
        /* StructureGenerator.kt:170 */
  352    441   
        self.storage_class.as_ref()
         442  +
        /* StructureGenerator.kt:166 */
  353    443   
    }
         444  +
    /* StructureGenerator.kt:231 */
  354    445   
    #[allow(missing_docs)] // documentation missing in model
         446  +
                           /* StructureGenerator.kt:166 */
  355    447   
    pub fn owner(&self) -> ::std::option::Option<&crate::model::Owner> {
         448  +
        /* StructureGenerator.kt:170 */
  356    449   
        self.owner.as_ref()
         450  +
        /* StructureGenerator.kt:166 */
  357    451   
    }
         452  +
    /* StructureGenerator.kt:135 */
  358    453   
}
         454  +
/* ServerCodegenVisitor.kt:345 */
  359    455   
impl Object {
  360         -
    /// Creates a new builder-style object to manufacture [`Object`](crate::model::Object).
         456  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`Object`](crate::model::Object).
         457  +
    /* ServerBuilderGenerator.kt:295 */
  361    458   
    pub fn builder() -> crate::model::object::Builder {
         459  +
        /* ServerBuilderGenerator.kt:296 */
  362    460   
        crate::model::object::Builder::default()
         461  +
        /* ServerBuilderGenerator.kt:295 */
  363    462   
    }
         463  +
    /* ServerCodegenVisitor.kt:345 */
  364    464   
}
  365    465   
         466  +
/* StructureGenerator.kt:197 */
  366    467   
#[allow(missing_docs)] // documentation missing in model
         468  +
/* RustType.kt:516 */
  367    469   
#[derive(
  368    470   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  369    471   
)]
  370         -
pub struct Owner {
         472  +
pub /* StructureGenerator.kt:201 */ struct Owner {
         473  +
    /* StructureGenerator.kt:231 */
  371    474   
    #[allow(missing_docs)] // documentation missing in model
  372    475   
    pub display_name: ::std::option::Option<::std::string::String>,
         476  +
    /* StructureGenerator.kt:231 */
  373    477   
    #[allow(missing_docs)] // documentation missing in model
  374    478   
    pub id: ::std::option::Option<::std::string::String>,
         479  +
    /* StructureGenerator.kt:201 */
  375    480   
}
         481  +
/* StructureGenerator.kt:135 */
  376    482   
impl Owner {
         483  +
    /* StructureGenerator.kt:231 */
  377    484   
    #[allow(missing_docs)] // documentation missing in model
         485  +
                           /* StructureGenerator.kt:166 */
  378    486   
    pub fn display_name(&self) -> ::std::option::Option<&str> {
         487  +
        /* StructureGenerator.kt:169 */
  379    488   
        self.display_name.as_deref()
         489  +
        /* StructureGenerator.kt:166 */
  380    490   
    }
         491  +
    /* StructureGenerator.kt:231 */
  381    492   
    #[allow(missing_docs)] // documentation missing in model
         493  +
                           /* StructureGenerator.kt:166 */
  382    494   
    pub fn id(&self) -> ::std::option::Option<&str> {
         495  +
        /* StructureGenerator.kt:169 */
  383    496   
        self.id.as_deref()
         497  +
        /* StructureGenerator.kt:166 */
  384    498   
    }
         499  +
    /* StructureGenerator.kt:135 */
  385    500   
}
         501  +
/* ServerCodegenVisitor.kt:345 */
  386    502   
impl Owner {
  387         -
    /// Creates a new builder-style object to manufacture [`Owner`](crate::model::Owner).
         503  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`Owner`](crate::model::Owner).
         504  +
    /* ServerBuilderGenerator.kt:295 */
  388    505   
    pub fn builder() -> crate::model::owner::Builder {
         506  +
        /* ServerBuilderGenerator.kt:296 */
  389    507   
        crate::model::owner::Builder::default()
         508  +
        /* ServerBuilderGenerator.kt:295 */
  390    509   
    }
         510  +
    /* ServerCodegenVisitor.kt:345 */
  391    511   
}
  392    512   
         513  +
/* EnumGenerator.kt:154 */
  393    514   
#[allow(missing_docs)] // documentation missing in model
         515  +
/* RustType.kt:516 */
  394    516   
#[derive(
  395    517   
    ::std::clone::Clone,
  396    518   
    ::std::cmp::Eq,
  397    519   
    ::std::cmp::Ord,
  398    520   
    ::std::cmp::PartialEq,
  399    521   
    ::std::cmp::PartialOrd,
  400    522   
    ::std::fmt::Debug,
  401    523   
    ::std::hash::Hash,
  402    524   
)]
  403         -
pub enum ObjectStorageClass {
         525  +
pub /* EnumGenerator.kt:267 */ enum ObjectStorageClass {
         526  +
    /* EnumGenerator.kt:154 */
  404    527   
    #[allow(missing_docs)] // documentation missing in model
         528  +
    /* EnumGenerator.kt:143 */
  405    529   
    DeepArchive,
         530  +
    /* EnumGenerator.kt:154 */
  406    531   
    #[allow(missing_docs)] // documentation missing in model
         532  +
    /* EnumGenerator.kt:143 */
  407    533   
    Glacier,
         534  +
    /* EnumGenerator.kt:154 */
  408    535   
    #[allow(missing_docs)] // documentation missing in model
         536  +
    /* EnumGenerator.kt:143 */
  409    537   
    IntelligentTiering,
         538  +
    /* EnumGenerator.kt:154 */
  410    539   
    #[allow(missing_docs)] // documentation missing in model
         540  +
    /* EnumGenerator.kt:143 */
  411    541   
    OnezoneIa,
         542  +
    /* EnumGenerator.kt:154 */
  412    543   
    #[allow(missing_docs)] // documentation missing in model
         544  +
    /* EnumGenerator.kt:143 */
  413    545   
    Outposts,
         546  +
    /* EnumGenerator.kt:154 */
  414    547   
    #[allow(missing_docs)] // documentation missing in model
         548  +
    /* EnumGenerator.kt:143 */
  415    549   
    ReducedRedundancy,
         550  +
    /* EnumGenerator.kt:154 */
  416    551   
    #[allow(missing_docs)] // documentation missing in model
         552  +
    /* EnumGenerator.kt:143 */
  417    553   
    Standard,
         554  +
    /* EnumGenerator.kt:154 */
  418    555   
    #[allow(missing_docs)] // documentation missing in model
         556  +
    /* EnumGenerator.kt:143 */
  419    557   
    StandardIa,
         558  +
    /* EnumGenerator.kt:267 */
  420    559   
}
  421         -
/// See [`ObjectStorageClass`](crate::model::ObjectStorageClass).
         560  +
/// /* CodegenDelegator.kt:51 */See [`ObjectStorageClass`](crate::model::ObjectStorageClass).
  422    561   
pub mod object_storage_class {
  423    562   
    #[derive(Debug, PartialEq)]
  424    563   
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
  425    564   
  426    565   
    impl ::std::fmt::Display for ConstraintViolation {
  427    566   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  428    567   
            write!(
  429    568   
                f,
  430    569   
                r#"Value provided for 'com.amazonaws.s3#ObjectStorageClass' failed to satisfy constraint: Member must satisfy enum value set: [STANDARD, REDUCED_REDUNDANCY, GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE, OUTPOSTS]"#
  431    570   
            )
  432    571   
        }
  433    572   
    }
  434    573   
  435    574   
    impl ::std::error::Error for ConstraintViolation {}
         575  +
         576  +
    /* ServerEnumGenerator.kt:46 */
  436    577   
}
         578  +
/* ServerEnumGenerator.kt:85 */
  437    579   
impl ::std::convert::TryFrom<&str> for ObjectStorageClass {
  438    580   
    type Error = crate::model::object_storage_class::ConstraintViolation;
  439    581   
    fn try_from(
  440    582   
        s: &str,
  441    583   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
  442    584   
        match s {
  443    585   
            "DEEP_ARCHIVE" => Ok(ObjectStorageClass::DeepArchive),
  444    586   
            "GLACIER" => Ok(ObjectStorageClass::Glacier),
  445    587   
            "INTELLIGENT_TIERING" => Ok(ObjectStorageClass::IntelligentTiering),
  446    588   
            "ONEZONE_IA" => Ok(ObjectStorageClass::OnezoneIa),
  447    589   
            "OUTPOSTS" => Ok(ObjectStorageClass::Outposts),
  448    590   
            "REDUCED_REDUNDANCY" => Ok(ObjectStorageClass::ReducedRedundancy),
  449    591   
            "STANDARD" => Ok(ObjectStorageClass::Standard),
  450    592   
            "STANDARD_IA" => Ok(ObjectStorageClass::StandardIa),
  451    593   
            _ => Err(crate::model::object_storage_class::ConstraintViolation(
  452    594   
                s.to_owned(),
  453    595   
            )),
  454    596   
        }
  455    597   
    }
  456    598   
}
  457    599   
impl ::std::convert::TryFrom<::std::string::String> for ObjectStorageClass {
  458    600   
    type Error = crate::model::object_storage_class::ConstraintViolation;
  459    601   
    fn try_from(
  460    602   
        s: ::std::string::String,
  461    603   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
  462    604   
    {
  463    605   
        s.as_str().try_into()
  464    606   
    }
  465    607   
}
         608  +
/* ServerEnumGenerator.kt:145 */
  466    609   
impl std::str::FromStr for ObjectStorageClass {
  467    610   
    type Err = crate::model::object_storage_class::ConstraintViolation;
  468    611   
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
  469    612   
        Self::try_from(s)
  470    613   
    }
  471    614   
}
         615  +
/* EnumGenerator.kt:274 */
  472    616   
impl ObjectStorageClass {
  473    617   
    /// Returns the `&str` value of the enum member.
  474    618   
    pub fn as_str(&self) -> &str {
  475    619   
        match self {
  476    620   
            ObjectStorageClass::DeepArchive => "DEEP_ARCHIVE",
  477    621   
            ObjectStorageClass::Glacier => "GLACIER",
  478    622   
            ObjectStorageClass::IntelligentTiering => "INTELLIGENT_TIERING",
  479    623   
            ObjectStorageClass::OnezoneIa => "ONEZONE_IA",
  480    624   
            ObjectStorageClass::Outposts => "OUTPOSTS",
  481    625   
            ObjectStorageClass::ReducedRedundancy => "REDUCED_REDUNDANCY",
  482    626   
            ObjectStorageClass::Standard => "STANDARD",
  483    627   
            ObjectStorageClass::StandardIa => "STANDARD_IA",
  484    628   
        }
  485    629   
    }
  486    630   
    /// Returns all the `&str` representations of the enum members.
  487    631   
    pub const fn values() -> &'static [&'static str] {
  488    632   
        &[
  489    633   
            "DEEP_ARCHIVE",
  490    634   
            "GLACIER",
  491    635   
            "INTELLIGENT_TIERING",
  492    636   
            "ONEZONE_IA",
  493    637   
            "OUTPOSTS",
  494    638   
            "REDUCED_REDUNDANCY",
  495    639   
            "STANDARD",
  496    640   
            "STANDARD_IA",
  497    641   
        ]
  498    642   
    }
  499    643   
}
         644  +
/* EnumGenerator.kt:223 */
  500    645   
impl ::std::convert::AsRef<str> for ObjectStorageClass {
  501    646   
    fn as_ref(&self) -> &str {
  502    647   
        self.as_str()
  503    648   
    }
  504    649   
}
         650  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
  505    651   
impl crate::constrained::Constrained for ObjectStorageClass {
  506    652   
    type Unconstrained = ::std::string::String;
  507    653   
}
  508    654   
  509    655   
impl ::std::convert::From<::std::string::String>
  510    656   
    for crate::constrained::MaybeConstrained<crate::model::ObjectStorageClass>
  511    657   
{
  512    658   
    fn from(value: ::std::string::String) -> Self {
  513    659   
        Self::Unconstrained(value)
  514    660   
    }
  515    661   
}
  516    662   
         663  +
/* EnumGenerator.kt:154 */
  517    664   
#[allow(missing_docs)] // documentation missing in model
         665  +
/* RustType.kt:516 */
  518    666   
#[derive(
  519    667   
    ::std::clone::Clone,
  520    668   
    ::std::cmp::Eq,
  521    669   
    ::std::cmp::Ord,
  522    670   
    ::std::cmp::PartialEq,
  523    671   
    ::std::cmp::PartialOrd,
  524    672   
    ::std::fmt::Debug,
  525    673   
    ::std::hash::Hash,
  526    674   
)]
  527         -
pub enum RequestPayer {
         675  +
pub /* EnumGenerator.kt:267 */ enum RequestPayer {
         676  +
    /* EnumGenerator.kt:154 */
  528    677   
    #[allow(missing_docs)] // documentation missing in model
         678  +
    /* EnumGenerator.kt:143 */
  529    679   
    Requester,
         680  +
    /* EnumGenerator.kt:267 */
  530    681   
}
  531         -
/// See [`RequestPayer`](crate::model::RequestPayer).
         682  +
/// /* CodegenDelegator.kt:51 */See [`RequestPayer`](crate::model::RequestPayer).
  532    683   
pub mod request_payer {
  533    684   
    #[derive(Debug, PartialEq)]
  534    685   
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
  535    686   
  536    687   
    impl ::std::fmt::Display for ConstraintViolation {
  537    688   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  538    689   
            write!(
  539    690   
                f,
  540    691   
                r#"Value provided for 'com.amazonaws.s3#RequestPayer' failed to satisfy constraint: Member must satisfy enum value set: [requester]"#
  541    692   
            )
  542    693   
        }
  543    694   
    }
  544    695   
  545    696   
    impl ::std::error::Error for ConstraintViolation {}
  546    697   
    impl ConstraintViolation {
  547    698   
        pub(crate) fn as_validation_exception_field(
  548    699   
            self,
  549    700   
            path: ::std::string::String,
  550    701   
        ) -> crate::model::ValidationExceptionField {
  551    702   
            crate::model::ValidationExceptionField {
  552    703   
                message: format!(
  553    704   
                    r#"Value at '{}' failed to satisfy constraint: Member must satisfy enum value set: [requester]"#,
  554    705   
                    &path
  555    706   
                ),
  556    707   
                path,
  557    708   
            }
  558    709   
        }
  559    710   
    }
         711  +
         712  +
    /* ServerEnumGenerator.kt:46 */
  560    713   
}
         714  +
/* ServerEnumGenerator.kt:85 */
  561    715   
impl ::std::convert::TryFrom<&str> for RequestPayer {
  562    716   
    type Error = crate::model::request_payer::ConstraintViolation;
  563    717   
    fn try_from(
  564    718   
        s: &str,
  565    719   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
  566    720   
        match s {
  567    721   
            "requester" => Ok(RequestPayer::Requester),
  568    722   
            _ => Err(crate::model::request_payer::ConstraintViolation(
  569    723   
                s.to_owned(),
  570    724   
            )),
  571    725   
        }
  572    726   
    }
  573    727   
}
  574    728   
impl ::std::convert::TryFrom<::std::string::String> for RequestPayer {
  575    729   
    type Error = crate::model::request_payer::ConstraintViolation;
  576    730   
    fn try_from(
  577    731   
        s: ::std::string::String,
  578    732   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
  579    733   
    {
  580    734   
        s.as_str().try_into()
  581    735   
    }
  582    736   
}
         737  +
/* ServerEnumGenerator.kt:145 */
  583    738   
impl std::str::FromStr for RequestPayer {
  584    739   
    type Err = crate::model::request_payer::ConstraintViolation;
  585    740   
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
  586    741   
        Self::try_from(s)
  587    742   
    }
  588    743   
}
         744  +
/* EnumGenerator.kt:274 */
  589    745   
impl RequestPayer {
  590    746   
    /// Returns the `&str` value of the enum member.
  591    747   
    pub fn as_str(&self) -> &str {
  592    748   
        match self {
  593    749   
            RequestPayer::Requester => "requester",
  594    750   
        }
  595    751   
    }
  596    752   
    /// Returns all the `&str` representations of the enum members.
  597    753   
    pub const fn values() -> &'static [&'static str] {
  598    754   
        &["requester"]
  599    755   
    }
  600    756   
}
         757  +
/* EnumGenerator.kt:223 */
  601    758   
impl ::std::convert::AsRef<str> for RequestPayer {
  602    759   
    fn as_ref(&self) -> &str {
  603    760   
        self.as_str()
  604    761   
    }
  605    762   
}
         763  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
  606    764   
impl crate::constrained::Constrained for RequestPayer {
  607    765   
    type Unconstrained = ::std::string::String;
  608    766   
}
  609    767   
  610    768   
impl ::std::convert::From<::std::string::String>
  611    769   
    for crate::constrained::MaybeConstrained<crate::model::RequestPayer>
  612    770   
{
  613    771   
    fn from(value: ::std::string::String) -> Self {
  614    772   
        Self::Unconstrained(value)
  615    773   
    }
  616    774   
}
  617         -
/// See [`ValidationExceptionField`](crate::model::ValidationExceptionField).
         775  +
/// /* ServerBuilderGenerator.kt:171 */See [`ValidationExceptionField`](crate::model::ValidationExceptionField).
  618    776   
pub mod validation_exception_field {
  619    777   
         778  +
    /* RustType.kt:516 */
  620    779   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
  621         -
    /// Holds one variant for each of the ways the builder can fail.
         780  +
    /// /* ServerBuilderConstraintViolations.kt:72 */Holds one variant for each of the ways the builder can fail.
         781  +
    /* RustType.kt:516 */
  622    782   
    #[non_exhaustive]
         783  +
    /* ServerBuilderConstraintViolations.kt:75 */
  623    784   
    #[allow(clippy::enum_variant_names)]
  624    785   
    pub enum ConstraintViolation {
  625         -
        /// `path` was not provided but it is required when building `ValidationExceptionField`.
         786  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`path` was not provided but it is required when building `ValidationExceptionField`.
         787  +
        /* ServerBuilderConstraintViolations.kt:143 */
  626    788   
        MissingPath,
  627         -
        /// `message` was not provided but it is required when building `ValidationExceptionField`.
         789  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`message` was not provided but it is required when building `ValidationExceptionField`.
         790  +
        /* ServerBuilderConstraintViolations.kt:143 */
  628    791   
        MissingMessage,
         792  +
        /* ServerBuilderConstraintViolations.kt:75 */
  629    793   
    }
         794  +
    /* ServerBuilderConstraintViolations.kt:117 */
  630    795   
    impl ::std::fmt::Display for ConstraintViolation {
         796  +
        /* ServerBuilderConstraintViolations.kt:118 */
  631    797   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         798  +
            /* ServerBuilderConstraintViolations.kt:119 */
  632    799   
            match self {
  633         -
                ConstraintViolation::MissingPath => write!(f, "`path` was not provided but it is required when building `ValidationExceptionField`"),
  634         -
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationExceptionField`"),
  635         -
            }
         800  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingPath => write!(f, "`path` was not provided but it is required when building `ValidationExceptionField`"),
         801  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationExceptionField`"),
         802  +
            /* ServerBuilderConstraintViolations.kt:119 */}
         803  +
            /* ServerBuilderConstraintViolations.kt:118 */
  636    804   
        }
         805  +
        /* ServerBuilderConstraintViolations.kt:117 */
  637    806   
    }
         807  +
    /* ServerBuilderConstraintViolations.kt:84 */
  638    808   
    impl ::std::error::Error for ConstraintViolation {}
         809  +
    /* ServerBuilderGenerator.kt:446 */
  639    810   
    impl ::std::convert::TryFrom<Builder> for crate::model::ValidationExceptionField {
  640    811   
        type Error = ConstraintViolation;
  641    812   
  642    813   
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
  643    814   
            builder.build()
  644    815   
        }
  645    816   
    }
  646         -
    /// A builder for [`ValidationExceptionField`](crate::model::ValidationExceptionField).
         817  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`ValidationExceptionField`](crate::model::ValidationExceptionField).
         818  +
    /* RustType.kt:516 */
  647    819   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         820  +
    /* ServerBuilderGenerator.kt:211 */
  648    821   
    pub struct Builder {
         822  +
        /* ServerBuilderGenerator.kt:308 */
  649    823   
        pub(crate) path: ::std::option::Option<::std::string::String>,
         824  +
        /* ServerBuilderGenerator.kt:308 */
  650    825   
        pub(crate) message: ::std::option::Option<::std::string::String>,
         826  +
        /* ServerBuilderGenerator.kt:211 */
  651    827   
    }
         828  +
    /* ServerBuilderGenerator.kt:215 */
  652    829   
    impl Builder {
  653         -
        /// A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
         830  +
        /// /* ServerBuilderGenerator.kt:331 */A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
         831  +
        /* ServerBuilderGenerator.kt:343 */
  654    832   
        pub fn path(mut self, input: ::std::string::String) -> Self {
  655         -
            self.path = Some(input);
         833  +
            /* ServerBuilderGenerator.kt:344 */
         834  +
            self.path =
         835  +
                /* ServerBuilderGenerator.kt:345 */Some(
         836  +
                    /* ServerBuilderGenerator.kt:376 */input
         837  +
                /* ServerBuilderGenerator.kt:345 */)
         838  +
            /* ServerBuilderGenerator.kt:344 */;
  656    839   
            self
         840  +
            /* ServerBuilderGenerator.kt:343 */
  657    841   
        }
  658         -
        /// A detailed description of the validation failure.
         842  +
        /// /* ServerBuilderGenerator.kt:331 */A detailed description of the validation failure.
         843  +
        /* ServerBuilderGenerator.kt:343 */
  659    844   
        pub fn message(mut self, input: ::std::string::String) -> Self {
  660         -
            self.message = Some(input);
         845  +
            /* ServerBuilderGenerator.kt:344 */
         846  +
            self.message =
         847  +
                /* ServerBuilderGenerator.kt:345 */Some(
         848  +
                    /* ServerBuilderGenerator.kt:376 */input
         849  +
                /* ServerBuilderGenerator.kt:345 */)
         850  +
            /* ServerBuilderGenerator.kt:344 */;
  661    851   
            self
         852  +
            /* ServerBuilderGenerator.kt:343 */
  662    853   
        }
  663         -
        /// Consumes the builder and constructs a [`ValidationExceptionField`](crate::model::ValidationExceptionField).
  664         -
        ///
         854  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`ValidationExceptionField`](crate::model::ValidationExceptionField).
         855  +
        /// /* ServerBuilderGenerator.kt:260 */
  665    856   
        /// The builder fails to construct a [`ValidationExceptionField`](crate::model::ValidationExceptionField) if a [`ConstraintViolation`] occurs.
  666    857   
        ///
  667         -
        /// If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
         858  +
        /// /* ServerBuilderGenerator.kt:268 */If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
         859  +
        /* ServerBuilderGenerator.kt:271 */
  668    860   
        pub fn build(self) -> Result<crate::model::ValidationExceptionField, ConstraintViolation> {
  669    861   
            self.build_enforcing_all_constraints()
  670    862   
        }
         863  +
        /* ServerBuilderGenerator.kt:283 */
  671    864   
        fn build_enforcing_all_constraints(
  672    865   
            self,
  673    866   
        ) -> Result<crate::model::ValidationExceptionField, ConstraintViolation> {
  674         -
            Ok(crate::model::ValidationExceptionField {
  675         -
                path: self.path.ok_or(ConstraintViolation::MissingPath)?,
  676         -
                message: self.message.ok_or(ConstraintViolation::MissingMessage)?,
  677         -
            })
         867  +
            /* ServerBuilderGenerator.kt:287 */
         868  +
            Ok(
         869  +
                /* ServerBuilderGenerator.kt:542 */
         870  +
                crate::model::ValidationExceptionField {
         871  +
                    /* ServerBuilderGenerator.kt:546 */
         872  +
                    path: self
         873  +
                        .path
         874  +
                        /* ServerBuilderGenerator.kt:569 */
         875  +
                        .ok_or(ConstraintViolation::MissingPath)?,
         876  +
                    /* ServerBuilderGenerator.kt:546 */
         877  +
                    message: self
         878  +
                        .message
         879  +
                        /* ServerBuilderGenerator.kt:569 */
         880  +
                        .ok_or(ConstraintViolation::MissingMessage)?,
         881  +
                    /* ServerBuilderGenerator.kt:542 */
         882  +
                }, /* ServerBuilderGenerator.kt:287 */
         883  +
            )
         884  +
            /* ServerBuilderGenerator.kt:283 */
  678    885   
        }
         886  +
        /* ServerBuilderGenerator.kt:215 */
  679    887   
    }
         888  +
         889  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  680    890   
}
  681         -
/// See [`ObjectKey`](crate::model::ObjectKey).
         891  +
/// /* CodegenDelegator.kt:51 */See [`ObjectKey`](crate::model::ObjectKey).
  682    892   
pub mod object_key {
  683    893   
         894  +
    /* ConstrainedStringGenerator.kt:155 */
  684    895   
    #[derive(Debug, PartialEq)]
  685    896   
    pub enum ConstraintViolation {
  686    897   
        /// Error when a string doesn't satisfy its `@length` requirements.
  687    898   
        Length(usize),
  688    899   
    }
  689    900   
  690    901   
    impl ::std::fmt::Display for ConstraintViolation {
  691    902   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  692    903   
            let message = match self {
  693    904   
                Self::Length(length) => {
  694    905   
                    format!("Value with length {} provided for 'com.amazonaws.s3#ObjectKey' failed to satisfy constraint: Member must have length greater than or equal to 1", length)
  695    906   
                }
  696    907   
            };
  697    908   
            write!(f, "{message}")
  698    909   
        }
  699    910   
    }
  700    911   
  701    912   
    impl ::std::error::Error for ConstraintViolation {}
         913  +
    /* ConstrainedStringGenerator.kt:180 */
  702    914   
    impl ConstraintViolation {
  703    915   
        pub(crate) fn as_validation_exception_field(
  704    916   
            self,
  705    917   
            path: ::std::string::String,
  706    918   
        ) -> crate::model::ValidationExceptionField {
  707    919   
            match self {
  708    920   
                            Self::Length(length) => crate::model::ValidationExceptionField {
  709    921   
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length greater than or equal to 1", length, &path),
  710    922   
                            path,
  711    923   
                        },
  712    924   
                        }
  713    925   
        }
  714    926   
    }
         927  +
         928  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  715    929   
}
  716         -
/// See [`CommonPrefix`](crate::model::CommonPrefix).
         930  +
/// /* ServerBuilderGenerator.kt:171 */See [`CommonPrefix`](crate::model::CommonPrefix).
  717    931   
pub mod common_prefix {
  718    932   
         933  +
    /* ServerBuilderGenerator.kt:461 */
  719    934   
    impl ::std::convert::From<Builder> for crate::model::CommonPrefix {
  720    935   
        fn from(builder: Builder) -> Self {
  721    936   
            builder.build()
  722    937   
        }
  723    938   
    }
  724         -
    /// A builder for [`CommonPrefix`](crate::model::CommonPrefix).
         939  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`CommonPrefix`](crate::model::CommonPrefix).
         940  +
    /* RustType.kt:516 */
  725    941   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         942  +
    /* ServerBuilderGenerator.kt:211 */
  726    943   
    pub struct Builder {
         944  +
        /* ServerBuilderGenerator.kt:308 */
  727    945   
        pub(crate) prefix: ::std::option::Option<::std::string::String>,
         946  +
        /* ServerBuilderGenerator.kt:211 */
  728    947   
    }
         948  +
    /* ServerBuilderGenerator.kt:215 */
  729    949   
    impl Builder {
         950  +
        /* ServerBuilderGenerator.kt:331 */
  730    951   
        #[allow(missing_docs)] // documentation missing in model
         952  +
                               /* ServerBuilderGenerator.kt:343 */
  731    953   
        pub fn prefix(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  732         -
            self.prefix = input;
         954  +
            /* ServerBuilderGenerator.kt:344 */
         955  +
            self.prefix =
         956  +
                /* ServerBuilderGenerator.kt:376 */input
         957  +
            /* ServerBuilderGenerator.kt:344 */;
  733    958   
            self
         959  +
            /* ServerBuilderGenerator.kt:343 */
  734    960   
        }
  735         -
        /// Consumes the builder and constructs a [`CommonPrefix`](crate::model::CommonPrefix).
         961  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`CommonPrefix`](crate::model::CommonPrefix).
         962  +
        /* ServerBuilderGenerator.kt:271 */
  736    963   
        pub fn build(self) -> crate::model::CommonPrefix {
  737    964   
            self.build_enforcing_all_constraints()
  738    965   
        }
         966  +
        /* ServerBuilderGenerator.kt:283 */
  739    967   
        fn build_enforcing_all_constraints(self) -> crate::model::CommonPrefix {
         968  +
            /* ServerBuilderGenerator.kt:542 */
  740    969   
            crate::model::CommonPrefix {
         970  +
                /* ServerBuilderGenerator.kt:546 */
  741    971   
                prefix: self.prefix,
         972  +
                /* ServerBuilderGenerator.kt:542 */
  742    973   
            }
         974  +
            /* ServerBuilderGenerator.kt:283 */
  743    975   
        }
         976  +
        /* ServerBuilderGenerator.kt:215 */
  744    977   
    }
         978  +
         979  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  745    980   
}
  746         -
/// See [`Object`](crate::model::Object).
         981  +
/// /* ServerBuilderGenerator.kt:171 */See [`Object`](crate::model::Object).
  747    982   
pub mod object {
  748    983   
         984  +
    /* ServerBuilderGenerator.kt:461 */
  749    985   
    impl ::std::convert::From<Builder> for crate::model::Object {
  750    986   
        fn from(builder: Builder) -> Self {
  751    987   
            builder.build()
  752    988   
        }
  753    989   
    }
  754         -
    /// A builder for [`Object`](crate::model::Object).
         990  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`Object`](crate::model::Object).
         991  +
    /* RustType.kt:516 */
  755    992   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         993  +
    /* ServerBuilderGenerator.kt:211 */
  756    994   
    pub struct Builder {
         995  +
        /* ServerBuilderGenerator.kt:308 */
  757    996   
        pub(crate) key: ::std::option::Option<crate::model::ObjectKey>,
         997  +
        /* ServerBuilderGenerator.kt:308 */
  758    998   
        pub(crate) last_modified: ::std::option::Option<::aws_smithy_types::DateTime>,
         999  +
        /* ServerBuilderGenerator.kt:308 */
  759   1000   
        pub(crate) e_tag: ::std::option::Option<::std::string::String>,
  760         -
        pub(crate) size: ::std::option::Option<i32>,
        1001  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) size: ::std::option::Option<i32>,
        1002  +
        /* ServerBuilderGenerator.kt:308 */
  761   1003   
        pub(crate) storage_class: ::std::option::Option<crate::model::ObjectStorageClass>,
        1004  +
        /* ServerBuilderGenerator.kt:308 */
  762   1005   
        pub(crate) owner: ::std::option::Option<crate::model::Owner>,
        1006  +
        /* ServerBuilderGenerator.kt:211 */
  763   1007   
    }
        1008  +
    /* ServerBuilderGenerator.kt:215 */
  764   1009   
    impl Builder {
        1010  +
        /* ServerBuilderGenerator.kt:331 */
  765   1011   
        #[allow(missing_docs)] // documentation missing in model
        1012  +
                               /* ServerBuilderGenerator.kt:343 */
  766   1013   
        pub fn key(mut self, input: ::std::option::Option<crate::model::ObjectKey>) -> Self {
  767         -
            self.key = input;
        1014  +
            /* ServerBuilderGenerator.kt:344 */
        1015  +
            self.key =
        1016  +
                /* ServerBuilderGenerator.kt:376 */input
        1017  +
            /* ServerBuilderGenerator.kt:344 */;
  768   1018   
            self
        1019  +
            /* ServerBuilderGenerator.kt:343 */
  769   1020   
        }
        1021  +
        /* ServerBuilderGenerator.kt:331 */
  770   1022   
        #[allow(missing_docs)] // documentation missing in model
        1023  +
                               /* ServerBuilderGenerator.kt:343 */
  771   1024   
        pub fn last_modified(
  772   1025   
            mut self,
  773   1026   
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
  774   1027   
        ) -> Self {
  775         -
            self.last_modified = input;
        1028  +
            /* ServerBuilderGenerator.kt:344 */
        1029  +
            self.last_modified =
        1030  +
                /* ServerBuilderGenerator.kt:376 */input
        1031  +
            /* ServerBuilderGenerator.kt:344 */;
  776   1032   
            self
        1033  +
            /* ServerBuilderGenerator.kt:343 */
  777   1034   
        }
        1035  +
        /* ServerBuilderGenerator.kt:331 */
  778   1036   
        #[allow(missing_docs)] // documentation missing in model
        1037  +
                               /* ServerBuilderGenerator.kt:343 */
  779   1038   
        pub fn e_tag(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  780         -
            self.e_tag = input;
        1039  +
            /* ServerBuilderGenerator.kt:344 */
        1040  +
            self.e_tag =
        1041  +
                /* ServerBuilderGenerator.kt:376 */input
        1042  +
            /* ServerBuilderGenerator.kt:344 */;
  781   1043   
            self
        1044  +
            /* ServerBuilderGenerator.kt:343 */
  782   1045   
        }
        1046  +
        /* ServerBuilderGenerator.kt:331 */
  783   1047   
        #[allow(missing_docs)] // documentation missing in model
        1048  +
                               /* ServerBuilderGenerator.kt:343 */
  784   1049   
        pub fn size(mut self, input: ::std::option::Option<i32>) -> Self {
  785         -
            self.size = input;
        1050  +
            /* ServerBuilderGenerator.kt:344 */
        1051  +
            self.size =
        1052  +
                /* ServerBuilderGenerator.kt:376 */input
        1053  +
            /* ServerBuilderGenerator.kt:344 */;
  786   1054   
            self
        1055  +
            /* ServerBuilderGenerator.kt:343 */
  787   1056   
        }
        1057  +
        /* ServerBuilderGenerator.kt:331 */
  788   1058   
        #[allow(missing_docs)] // documentation missing in model
        1059  +
                               /* ServerBuilderGenerator.kt:343 */
  789   1060   
        pub fn storage_class(
  790   1061   
            mut self,
  791   1062   
            input: ::std::option::Option<crate::model::ObjectStorageClass>,
  792   1063   
        ) -> Self {
  793         -
            self.storage_class = input;
        1064  +
            /* ServerBuilderGenerator.kt:344 */
        1065  +
            self.storage_class =
        1066  +
                /* ServerBuilderGenerator.kt:376 */input
        1067  +
            /* ServerBuilderGenerator.kt:344 */;
  794   1068   
            self
        1069  +
            /* ServerBuilderGenerator.kt:343 */
  795   1070   
        }
        1071  +
        /* ServerBuilderGenerator.kt:331 */
  796   1072   
        #[allow(missing_docs)] // documentation missing in model
        1073  +
                               /* ServerBuilderGenerator.kt:343 */
  797   1074   
        pub fn owner(mut self, input: ::std::option::Option<crate::model::Owner>) -> Self {
  798         -
            self.owner = input;
        1075  +
            /* ServerBuilderGenerator.kt:344 */
        1076  +
            self.owner =
        1077  +
                /* ServerBuilderGenerator.kt:376 */input
        1078  +
            /* ServerBuilderGenerator.kt:344 */;
  799   1079   
            self
        1080  +
            /* ServerBuilderGenerator.kt:343 */
  800   1081   
        }
  801         -
        /// Consumes the builder and constructs a [`Object`](crate::model::Object).
        1082  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`Object`](crate::model::Object).
        1083  +
        /* ServerBuilderGenerator.kt:271 */
  802   1084   
        pub fn build(self) -> crate::model::Object {
  803   1085   
            self.build_enforcing_all_constraints()
  804   1086   
        }
        1087  +
        /* ServerBuilderGenerator.kt:283 */
  805   1088   
        fn build_enforcing_all_constraints(self) -> crate::model::Object {
        1089  +
            /* ServerBuilderGenerator.kt:542 */
  806   1090   
            crate::model::Object {
        1091  +
                /* ServerBuilderGenerator.kt:546 */
  807   1092   
                key: self.key,
        1093  +
                /* ServerBuilderGenerator.kt:546 */
  808   1094   
                last_modified: self.last_modified,
        1095  +
                /* ServerBuilderGenerator.kt:546 */
  809   1096   
                e_tag: self.e_tag,
        1097  +
                /* ServerBuilderGenerator.kt:546 */
  810   1098   
                size: self.size,
        1099  +
                /* ServerBuilderGenerator.kt:546 */
  811   1100   
                storage_class: self.storage_class,
        1101  +
                /* ServerBuilderGenerator.kt:546 */
  812   1102   
                owner: self.owner,
        1103  +
                /* ServerBuilderGenerator.kt:542 */
  813   1104   
            }
        1105  +
            /* ServerBuilderGenerator.kt:283 */
  814   1106   
        }
        1107  +
        /* ServerBuilderGenerator.kt:215 */
  815   1108   
    }
        1109  +
        1110  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  816   1111   
}
  817         -
/// See [`Owner`](crate::model::Owner).
        1112  +
/// /* ServerBuilderGenerator.kt:171 */See [`Owner`](crate::model::Owner).
  818   1113   
pub mod owner {
  819   1114   
        1115  +
    /* ServerBuilderGenerator.kt:461 */
  820   1116   
    impl ::std::convert::From<Builder> for crate::model::Owner {
  821   1117   
        fn from(builder: Builder) -> Self {
  822   1118   
            builder.build()
  823   1119   
        }
  824   1120   
    }
  825         -
    /// A builder for [`Owner`](crate::model::Owner).
        1121  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`Owner`](crate::model::Owner).
        1122  +
    /* RustType.kt:516 */
  826   1123   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1124  +
    /* ServerBuilderGenerator.kt:211 */
  827   1125   
    pub struct Builder {
        1126  +
        /* ServerBuilderGenerator.kt:308 */
  828   1127   
        pub(crate) display_name: ::std::option::Option<::std::string::String>,
        1128  +
        /* ServerBuilderGenerator.kt:308 */
  829   1129   
        pub(crate) id: ::std::option::Option<::std::string::String>,
        1130  +
        /* ServerBuilderGenerator.kt:211 */
  830   1131   
    }
        1132  +
    /* ServerBuilderGenerator.kt:215 */
  831   1133   
    impl Builder {
        1134  +
        /* ServerBuilderGenerator.kt:331 */
  832   1135   
        #[allow(missing_docs)] // documentation missing in model
        1136  +
                               /* ServerBuilderGenerator.kt:343 */
  833   1137   
        pub fn display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  834         -
            self.display_name = input;
        1138  +
            /* ServerBuilderGenerator.kt:344 */
        1139  +
            self.display_name =
        1140  +
                /* ServerBuilderGenerator.kt:376 */input
        1141  +
            /* ServerBuilderGenerator.kt:344 */;
  835   1142   
            self
        1143  +
            /* ServerBuilderGenerator.kt:343 */
  836   1144   
        }
        1145  +
        /* ServerBuilderGenerator.kt:331 */
  837   1146   
        #[allow(missing_docs)] // documentation missing in model
        1147  +
                               /* ServerBuilderGenerator.kt:343 */
  838   1148   
        pub fn id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  839         -
            self.id = input;
        1149  +
            /* ServerBuilderGenerator.kt:344 */
        1150  +
            self.id =
        1151  +
                /* ServerBuilderGenerator.kt:376 */input
        1152  +
            /* ServerBuilderGenerator.kt:344 */;
  840   1153   
            self
        1154  +
            /* ServerBuilderGenerator.kt:343 */
  841   1155   
        }
  842         -
        /// Consumes the builder and constructs a [`Owner`](crate::model::Owner).
        1156  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`Owner`](crate::model::Owner).
        1157  +
        /* ServerBuilderGenerator.kt:271 */
  843   1158   
        pub fn build(self) -> crate::model::Owner {
  844   1159   
            self.build_enforcing_all_constraints()
  845   1160   
        }
        1161  +
        /* ServerBuilderGenerator.kt:283 */
  846   1162   
        fn build_enforcing_all_constraints(self) -> crate::model::Owner {
        1163  +
            /* ServerBuilderGenerator.kt:542 */
  847   1164   
            crate::model::Owner {
        1165  +
                /* ServerBuilderGenerator.kt:546 */
  848   1166   
                display_name: self.display_name,
        1167  +
                /* ServerBuilderGenerator.kt:546 */
  849   1168   
                id: self.id,
        1169  +
                /* ServerBuilderGenerator.kt:542 */
  850   1170   
            }
        1171  +
            /* ServerBuilderGenerator.kt:283 */
  851   1172   
        }
        1173  +
        /* ServerBuilderGenerator.kt:215 */
  852   1174   
    }
        1175  +
        1176  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  853   1177   
}

tmp-codegen-diff/codegen-server-test/s3/rust-server-codegen/src/operation.rs

@@ -1,1 +228,234 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
           2  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
    3      3   
::pin_project_lite::pin_project! {
    4      4   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
    5      5   
    /// [`GetObjectInput`](crate::input::GetObjectInput) using modelled bindings.
    6      6   
    pub struct GetObjectInputFuture {
    7      7   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::GetObjectInput, ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError>> + Send>>
    8      8   
    }
    9      9   
}
   10     10   
   11     11   
impl std::future::Future for GetObjectInputFuture {
   12     12   
    type Output = Result<
   13     13   
        crate::input::GetObjectInput,
   14     14   
        ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError,
   15     15   
    >;
   16     16   
   17     17   
    fn poll(
   18     18   
        self: std::pin::Pin<&mut Self>,
   19     19   
        cx: &mut std::task::Context<'_>,
   20     20   
    ) -> std::task::Poll<Self::Output> {
   21     21   
        let this = self.project();
   22     22   
        this.inner.as_mut().poll(cx)
   23     23   
    }
   24     24   
}
   25     25   
   26     26   
impl<B>
   27     27   
    ::aws_smithy_http_server::request::FromRequest<
   28     28   
        ::aws_smithy_http_server::protocol::rest_xml::RestXml,
   29     29   
        B,
   30     30   
    > for crate::input::GetObjectInput
   31     31   
where
   32     32   
    B: ::aws_smithy_http_server::body::HttpBody + Send,
   33     33   
    B: 'static,
   34     34   
   35     35   
    B::Data: Send,
   36     36   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection:
   37     37   
        From<<B as ::aws_smithy_http_server::body::HttpBody>::Error>,
   38     38   
{
   39     39   
    type Rejection = ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError;
   40     40   
    type Future = GetObjectInputFuture;
   41     41   
   42     42   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   43     43   
        let fut = async move {
   44     44   
            crate::protocol_serde::shape_get_object::de_get_object_http_request(request)
   45     45   
                .await
   46     46   
                .map_err(Into::into)
   47     47   
        };
   48     48   
        use ::futures_util::future::TryFutureExt;
   49     49   
        let fut = fut.map_err(
   50     50   
            |e: ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection| {
   51     51   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   52     52   
                ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError::from(e)
   53     53   
            },
   54     54   
        );
   55     55   
        GetObjectInputFuture {
   56     56   
            inner: Box::pin(fut),
   57     57   
        }
   58     58   
    }
   59     59   
}
          60  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
   60     61   
impl
   61     62   
    ::aws_smithy_http_server::response::IntoResponse<
   62     63   
        ::aws_smithy_http_server::protocol::rest_xml::RestXml,
   63     64   
    > for crate::output::GetObjectOutput
   64     65   
{
   65     66   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
   66     67   
        match crate::protocol_serde::shape_get_object::ser_get_object_http_response(self) {
   67     68   
            Ok(response) => response,
   68     69   
            Err(e) => {
   69     70   
                ::tracing::error!(error = %e, "failed to serialize response");
   70     71   
                ::aws_smithy_http_server::response::IntoResponse::<
   71     72   
                    ::aws_smithy_http_server::protocol::rest_xml::RestXml,
   72     73   
                >::into_response(
   73     74   
                    ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError::from(
   74     75   
                        e,
   75     76   
                    ),
   76     77   
                )
   77     78   
            }
   78     79   
        }
   79     80   
    }
   80     81   
}
          82  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
   81     83   
impl
   82     84   
    ::aws_smithy_http_server::response::IntoResponse<
   83     85   
        ::aws_smithy_http_server::protocol::rest_xml::RestXml,
   84     86   
    > for crate::error::GetObjectError
   85     87   
{
   86     88   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
   87     89   
        match crate::protocol_serde::shape_get_object::ser_get_object_http_error(&self) {
   88     90   
            Ok(mut response) => {
   89     91   
                response.extensions_mut().insert(
   90     92   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
   91     93   
                );
   92     94   
                response
   93     95   
            }
   94     96   
            Err(e) => {
   95     97   
                ::tracing::error!(error = %e, "failed to serialize response");
   96     98   
                ::aws_smithy_http_server::response::IntoResponse::<
   97     99   
                    ::aws_smithy_http_server::protocol::rest_xml::RestXml,
   98    100   
                >::into_response(
   99    101   
                    ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError::from(
  100    102   
                        e,
  101    103   
                    ),
  102    104   
                )
  103    105   
            }
  104    106   
        }
  105    107   
    }
  106    108   
}
  107    109   
         110  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  108    111   
::pin_project_lite::pin_project! {
  109    112   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  110    113   
    /// [`DeleteObjectTaggingInput`](crate::input::DeleteObjectTaggingInput) using modelled bindings.
  111    114   
    pub struct DeleteObjectTaggingInputFuture {
  112    115   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::DeleteObjectTaggingInput, ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError>> + Send>>
  113    116   
    }
  114    117   
}
  115    118   
  116    119   
impl std::future::Future for DeleteObjectTaggingInputFuture {
  117    120   
    type Output = Result<
  118    121   
        crate::input::DeleteObjectTaggingInput,
  119    122   
        ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError,
  120    123   
    >;
  121    124   
  122    125   
    fn poll(
  123    126   
        self: std::pin::Pin<&mut Self>,
  124    127   
        cx: &mut std::task::Context<'_>,
  125    128   
    ) -> std::task::Poll<Self::Output> {
  126    129   
        let this = self.project();
  127    130   
        this.inner.as_mut().poll(cx)
  128    131   
    }
  129    132   
}
  130    133   
  131    134   
impl<B>
  132    135   
    ::aws_smithy_http_server::request::FromRequest<
  133    136   
        ::aws_smithy_http_server::protocol::rest_xml::RestXml,
  134    137   
        B,
  135    138   
    > for crate::input::DeleteObjectTaggingInput
  136    139   
where
  137    140   
    B: ::aws_smithy_http_server::body::HttpBody + Send,
  138    141   
    B: 'static,
  139    142   
  140    143   
    B::Data: Send,
  141    144   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection:
  142    145   
        From<<B as ::aws_smithy_http_server::body::HttpBody>::Error>,
  143    146   
{
  144    147   
    type Rejection = ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError;
  145    148   
    type Future = DeleteObjectTaggingInputFuture;
  146    149   
  147    150   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  148    151   
        let fut = async move {
  149    152   
            crate::protocol_serde::shape_delete_object_tagging::de_delete_object_tagging_http_request(request)
  150    153   
                            .await
  151    154   
                            .map_err(Into::into)
  152    155   
        };
  153    156   
        use ::futures_util::future::TryFutureExt;
  154    157   
        let fut = fut.map_err(
  155    158   
            |e: ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection| {
  156    159   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  157    160   
                ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError::from(e)
  158    161   
            },
  159    162   
        );
  160    163   
        DeleteObjectTaggingInputFuture {
  161    164   
            inner: Box::pin(fut),
  162    165   
        }
  163    166   
    }
  164    167   
}
         168  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  165    169   
impl
  166    170   
    ::aws_smithy_http_server::response::IntoResponse<
  167    171   
        ::aws_smithy_http_server::protocol::rest_xml::RestXml,
  168    172   
    > for crate::output::DeleteObjectTaggingOutput
  169    173   
{
  170    174   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  171    175   
        match crate::protocol_serde::shape_delete_object_tagging::ser_delete_object_tagging_http_response(self) {
  172    176   
                        Ok(response) => response,
  173    177   
                        Err(e) => {
  174    178   
                            ::tracing::error!(error = %e, "failed to serialize response");
  175    179   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_xml::RestXml>::into_response(::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError::from(e))
  176    180   
                        }
  177    181   
                    }
  178    182   
    }
  179    183   
}
         184  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  180    185   
impl
  181    186   
    ::aws_smithy_http_server::response::IntoResponse<
  182    187   
        ::aws_smithy_http_server::protocol::rest_xml::RestXml,
  183    188   
    > for crate::error::DeleteObjectTaggingError
  184    189   
{
  185    190   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  186    191   
        match crate::protocol_serde::shape_delete_object_tagging::ser_delete_object_tagging_http_error(&self) {
  187    192   
            Ok(mut response) => {
  188    193   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
  189    194   
                response
  190    195   
            },
  191    196   
            Err(e) => {
  192    197   
                ::tracing::error!(error = %e, "failed to serialize response");
  193    198   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_xml::RestXml>::into_response(::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError::from(e))
  194    199   
            }
  195    200   
        }
  196    201   
    }
  197    202   
}
  198    203   
         204  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  199    205   
static CONTENT_TYPE_GETBUCKETLOCATION: std::sync::LazyLock<::mime::Mime> =
  200    206   
    std::sync::LazyLock::new(|| {
  201    207   
        "application/xml"
  202    208   
            .parse::<::mime::Mime>()
  203    209   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  204    210   
    });
  205    211   
::pin_project_lite::pin_project! {
  206    212   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  207    213   
    /// [`GetBucketLocationInput`](crate::input::GetBucketLocationInput) using modelled bindings.
  208    214   
    pub struct GetBucketLocationInputFuture {
@@ -240,246 +377,391 @@
  260    266   
            |e: ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection| {
  261    267   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  262    268   
                ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError::from(e)
  263    269   
            },
  264    270   
        );
  265    271   
        GetBucketLocationInputFuture {
  266    272   
            inner: Box::pin(fut),
  267    273   
        }
  268    274   
    }
  269    275   
}
         276  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  270    277   
impl
  271    278   
    ::aws_smithy_http_server::response::IntoResponse<
  272    279   
        ::aws_smithy_http_server::protocol::rest_xml::RestXml,
  273    280   
    > for crate::output::GetBucketLocationOutput
  274    281   
{
  275    282   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  276    283   
        match crate::protocol_serde::shape_get_bucket_location::ser_get_bucket_location_http_response(self) {
  277    284   
                        Ok(response) => response,
  278    285   
                        Err(e) => {
  279    286   
                            ::tracing::error!(error = %e, "failed to serialize response");
  280    287   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_xml::RestXml>::into_response(::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError::from(e))
  281    288   
                        }
  282    289   
                    }
  283    290   
    }
  284    291   
}
         292  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  285    293   
impl
  286    294   
    ::aws_smithy_http_server::response::IntoResponse<
  287    295   
        ::aws_smithy_http_server::protocol::rest_xml::RestXml,
  288    296   
    > for crate::error::GetBucketLocationError
  289    297   
{
  290    298   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  291    299   
        match crate::protocol_serde::shape_get_bucket_location::ser_get_bucket_location_http_error(
  292    300   
            &self,
  293    301   
        ) {
  294    302   
            Ok(mut response) => {
  295    303   
                response.extensions_mut().insert(
  296    304   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
  297    305   
                );
  298    306   
                response
  299    307   
            }
  300    308   
            Err(e) => {
  301    309   
                ::tracing::error!(error = %e, "failed to serialize response");
  302    310   
                ::aws_smithy_http_server::response::IntoResponse::<
  303    311   
                    ::aws_smithy_http_server::protocol::rest_xml::RestXml,
  304    312   
                >::into_response(
  305    313   
                    ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError::from(
  306    314   
                        e,
  307    315   
                    ),
  308    316   
                )
  309    317   
            }
  310    318   
        }
  311    319   
    }
  312    320   
}
  313    321   
         322  +
/* RustType.kt:516 */
  314    323   
#[allow(unreachable_code, unused_variables)]
         324  +
/* RustType.kt:516 */
  315    325   
#[cfg(test)]
         326  +
/* ProtocolTestGenerator.kt:98 */
  316    327   
mod get_bucket_location_test {
  317    328   
  318    329   
    /// S3 clients should use the @s3UnwrappedXmlOutput trait to determine
  319    330   
    /// that the response shape is not wrapped in a restxml operation-level XML node.
  320    331   
    ///
  321    332   
    /// Test ID: GetBucketLocationUnwrappedOutput
  322    333   
    #[::tokio::test]
  323    334   
    #[::tracing_test::traced_test]
  324    335   
    #[should_panic]
  325    336   
    async fn get_bucket_location_unwrapped_output_response() {
  326    337   
        let output = crate::output::GetBucketLocationOutput {
  327    338   
            location_constraint: ::std::option::Option::Some(
  328    339   
                "us-west-2"
  329    340   
                    .parse::<crate::model::BucketLocationConstraint>()
  330    341   
                    .expect("static value validated to member"),
  331    342   
            ),
  332    343   
        };
  333    344   
        use ::aws_smithy_http_server::response::IntoResponse;
  334    345   
        let http_response = output.into_response();
  335    346   
        ::pretty_assertions::assert_eq!(
  336    347   
            http::StatusCode::from_u16(200).expect("invalid expected HTTP status code"),
  337    348   
            http_response.status()
  338    349   
        );
  339    350   
        let body = ::hyper::body::to_bytes(http_response.into_body())
  340    351   
            .await
  341    352   
            .expect("unable to extract body to bytes");
  342    353   
        ::aws_smithy_protocol_test::assert_ok(
  343    354   
        ::aws_smithy_protocol_test::validate_body(&body, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<LocationConstraint xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\">us-west-2</LocationConstraint>", ::aws_smithy_protocol_test::MediaType::from("unknown"))
  344    355   
        );
  345    356   
    }
         357  +
         358  +
    /* ProtocolTestGenerator.kt:98 */
  346    359   
}
  347    360   
         361  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  348    362   
static CONTENT_TYPE_LISTOBJECTSV2: std::sync::LazyLock<::mime::Mime> =
  349    363   
    std::sync::LazyLock::new(|| {
  350    364   
        "application/xml"
  351    365   
            .parse::<::mime::Mime>()
  352    366   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  353    367   
    });
  354    368   
::pin_project_lite::pin_project! {
  355    369   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  356    370   
    /// [`ListObjectsV2Input`](crate::input::ListObjectsV2Input) using modelled bindings.
  357    371   
    pub struct ListObjectsV2InputFuture {
@@ -387,401 +497,516 @@
  407    421   
            |e: ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection| {
  408    422   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  409    423   
                ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError::from(e)
  410    424   
            },
  411    425   
        );
  412    426   
        ListObjectsV2InputFuture {
  413    427   
            inner: Box::pin(fut),
  414    428   
        }
  415    429   
    }
  416    430   
}
         431  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  417    432   
impl
  418    433   
    ::aws_smithy_http_server::response::IntoResponse<
  419    434   
        ::aws_smithy_http_server::protocol::rest_xml::RestXml,
  420    435   
    > for crate::output::ListObjectsV2Output
  421    436   
{
  422    437   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  423    438   
        match crate::protocol_serde::shape_list_objects_v2::ser_list_objects_v2_http_response(self)
  424    439   
        {
  425    440   
            Ok(response) => response,
  426    441   
            Err(e) => {
  427    442   
                ::tracing::error!(error = %e, "failed to serialize response");
  428    443   
                ::aws_smithy_http_server::response::IntoResponse::<
  429    444   
                    ::aws_smithy_http_server::protocol::rest_xml::RestXml,
  430    445   
                >::into_response(
  431    446   
                    ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError::from(
  432    447   
                        e,
  433    448   
                    ),
  434    449   
                )
  435    450   
            }
  436    451   
        }
  437    452   
    }
  438    453   
}
         454  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  439    455   
impl
  440    456   
    ::aws_smithy_http_server::response::IntoResponse<
  441    457   
        ::aws_smithy_http_server::protocol::rest_xml::RestXml,
  442    458   
    > for crate::error::ListObjectsV2Error
  443    459   
{
  444    460   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  445    461   
        match crate::protocol_serde::shape_list_objects_v2::ser_list_objects_v2_http_error(&self) {
  446    462   
            Ok(mut response) => {
  447    463   
                response.extensions_mut().insert(
  448    464   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
  449    465   
                );
  450    466   
                response
  451    467   
            }
  452    468   
            Err(e) => {
  453    469   
                ::tracing::error!(error = %e, "failed to serialize response");
  454    470   
                ::aws_smithy_http_server::response::IntoResponse::<
  455    471   
                    ::aws_smithy_http_server::protocol::rest_xml::RestXml,
  456    472   
                >::into_response(
  457    473   
                    ::aws_smithy_http_server::protocol::rest_xml::runtime_error::RuntimeError::from(
  458    474   
                        e,
  459    475   
                    ),
  460    476   
                )
  461    477   
            }
  462    478   
        }
  463    479   
    }
  464    480   
}
  465    481   
         482  +
/* RustType.kt:516 */
  466    483   
#[allow(unreachable_code, unused_variables)]
         484  +
/* RustType.kt:516 */
  467    485   
#[cfg(test)]
         486  +
/* ProtocolTestGenerator.kt:98 */
  468    487   
mod list_objects_v2_test {
  469    488   
  470    489   
    /// S3 clients should map the default addressing style to virtual host.
  471    490   
    /// Test ID: S3DefaultAddressing
  472    491   
    #[::tokio::test]
  473    492   
    #[::tracing_test::traced_test]
  474    493   
    #[should_panic]
  475    494   
    async fn s3_default_addressing_request() {
  476    495   
        #[allow(unused_mut)]
  477    496   
        let mut http_request = http::Request::builder()
@@ -962,981 +992,1013 @@
  982   1001   
            http_response.headers(),
  983   1002   
            expected_headers,
  984   1003   
        ));
  985   1004   
        let body = ::hyper::body::to_bytes(http_response.into_body())
  986   1005   
            .await
  987   1006   
            .expect("unable to extract body to bytes");
  988   1007   
        ::aws_smithy_protocol_test::assert_ok(
  989   1008   
        ::aws_smithy_protocol_test::validate_body(&body, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error>\n\t<Type>Sender</Type>\n\t<Code>NoSuchBucket</Code>\n</Error>", ::aws_smithy_protocol_test::MediaType::from("application/xml"))
  990   1009   
        );
  991   1010   
    }
        1011  +
        1012  +
    /* ProtocolTestGenerator.kt:98 */
  992   1013   
}

tmp-codegen-diff/codegen-server-test/s3/rust-server-codegen/src/operation_shape.rs

@@ -1,1 +0,164 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* ServerOperationGenerator.kt:48 */
    2      3   
#[allow(missing_docs)] // documentation missing in model
           4  +
                       /* ServerOperationGenerator.kt:55 */
    3      5   
pub struct GetObject;
    4      6   
    5      7   
impl ::aws_smithy_http_server::operation::OperationShape for GetObject {
    6      8   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
    7      9   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
    8     10   
            "com.amazonaws.s3#GetObject",
    9     11   
            "com.amazonaws.s3",
   10     12   
            "GetObject",
   11     13   
        );
   12     14   
   13     15   
    type Input = crate::input::GetObjectInput;
   14     16   
    type Output = crate::output::GetObjectOutput;
   15     17   
    type Error = crate::error::GetObjectError;
   16     18   
}
   17     19   
   18     20   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for GetObject {
   19     21   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
   20     22   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   21     23   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
   22     24   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   23     25   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   24     26   
        >,
   25     27   
    >;
   26     28   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
   27     29   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   28     30   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   29     31   
    >;
   30     32   
   31     33   
    fn request_fmt() -> Self::RequestFmt {
   32     34   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
   33     35   
    }
   34     36   
   35     37   
    fn response_fmt() -> Self::ResponseFmt {
   36     38   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   37     39   
    }
   38     40   
}
          41  +
/* ServerOperationGenerator.kt:88 */
   39     42   
          43  +
/* ServerOperationGenerator.kt:48 */
   40     44   
#[allow(missing_docs)] // documentation missing in model
          45  +
                       /* ServerOperationGenerator.kt:55 */
   41     46   
pub struct DeleteObjectTagging;
   42     47   
   43     48   
impl ::aws_smithy_http_server::operation::OperationShape for DeleteObjectTagging {
   44     49   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
   45     50   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
   46     51   
            "com.amazonaws.s3#DeleteObjectTagging",
   47     52   
            "com.amazonaws.s3",
   48     53   
            "DeleteObjectTagging",
   49     54   
        );
   50     55   
   51     56   
    type Input = crate::input::DeleteObjectTaggingInput;
   52     57   
    type Output = crate::output::DeleteObjectTaggingOutput;
   53     58   
    type Error = crate::error::DeleteObjectTaggingError;
   54     59   
}
   55     60   
   56     61   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for DeleteObjectTagging {
   57     62   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
   58     63   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   59     64   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
   60     65   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   61     66   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   62     67   
        >,
   63     68   
    >;
   64     69   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
   65     70   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   66     71   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   67     72   
    >;
   68     73   
   69     74   
    fn request_fmt() -> Self::RequestFmt {
   70     75   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
   71     76   
    }
   72     77   
   73     78   
    fn response_fmt() -> Self::ResponseFmt {
   74     79   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   75     80   
    }
   76     81   
}
          82  +
/* ServerOperationGenerator.kt:88 */
   77     83   
          84  +
/* ServerOperationGenerator.kt:48 */
   78     85   
#[allow(missing_docs)] // documentation missing in model
          86  +
                       /* ServerOperationGenerator.kt:55 */
   79     87   
pub struct GetBucketLocation;
   80     88   
   81     89   
impl ::aws_smithy_http_server::operation::OperationShape for GetBucketLocation {
   82     90   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
   83     91   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
   84     92   
            "com.amazonaws.s3#GetBucketLocation",
   85     93   
            "com.amazonaws.s3",
   86     94   
            "GetBucketLocation",
   87     95   
        );
   88     96   
   89     97   
    type Input = crate::input::GetBucketLocationInput;
   90     98   
    type Output = crate::output::GetBucketLocationOutput;
   91     99   
    type Error = crate::error::GetBucketLocationError;
   92    100   
}
   93    101   
   94    102   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for GetBucketLocation {
   95    103   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
   96    104   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   97    105   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
   98    106   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   99    107   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  100    108   
        >,
  101    109   
    >;
  102    110   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  103    111   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  104    112   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  105    113   
    >;
  106    114   
  107    115   
    fn request_fmt() -> Self::RequestFmt {
  108    116   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  109    117   
    }
  110    118   
  111    119   
    fn response_fmt() -> Self::ResponseFmt {
  112    120   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  113    121   
    }
  114    122   
}
         123  +
/* ServerOperationGenerator.kt:88 */
  115    124   
         125  +
/* ServerOperationGenerator.kt:48 */
  116    126   
#[allow(missing_docs)] // documentation missing in model
         127  +
                       /* ServerOperationGenerator.kt:55 */
  117    128   
pub struct ListObjectsV2;
  118    129   
  119    130   
impl ::aws_smithy_http_server::operation::OperationShape for ListObjectsV2 {
  120    131   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  121    132   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  122    133   
            "com.amazonaws.s3#ListObjectsV2",
  123    134   
            "com.amazonaws.s3",
  124    135   
            "ListObjectsV2",
  125    136   
        );
  126    137   
  127    138   
    type Input = crate::input::ListObjectsV2Input;
  128    139   
    type Output = crate::output::ListObjectsV2Output;
  129    140   
    type Error = crate::error::ListObjectsV2Error;
  130    141   
}
  131    142   
  132    143   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for ListObjectsV2 {
  133    144   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  134    145   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  135    146   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  136    147   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  137    148   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  138    149   
        >,
  139    150   
    >;
  140    151   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  141    152   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  142    153   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  143    154   
    >;
  144    155   
  145    156   
    fn request_fmt() -> Self::RequestFmt {
  146    157   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  147    158   
    }
  148    159   
  149    160   
    fn response_fmt() -> Self::ResponseFmt {
  150    161   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  151    162   
    }
  152    163   
}
         164  +
/* ServerOperationGenerator.kt:88 */

tmp-codegen-diff/codegen-server-test/s3/rust-server-codegen/src/output.rs

@@ -1,1 +351,619 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* StructureGenerator.kt:197 */
    2      3   
#[allow(missing_docs)] // documentation missing in model
           4  +
/* RustType.kt:516 */
    3      5   
#[derive(
    4      6   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
    5      7   
)]
    6         -
pub struct GetObjectOutput {}
           8  +
pub /* StructureGenerator.kt:201 */ struct GetObjectOutput {/* StructureGenerator.kt:201 */}
           9  +
/* ServerCodegenVisitor.kt:345 */
    7     10   
impl GetObjectOutput {
    8         -
    /// Creates a new builder-style object to manufacture [`GetObjectOutput`](crate::output::GetObjectOutput).
          11  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`GetObjectOutput`](crate::output::GetObjectOutput).
          12  +
    /* ServerBuilderGenerator.kt:295 */
    9     13   
    pub fn builder() -> crate::output::get_object_output::Builder {
          14  +
        /* ServerBuilderGenerator.kt:296 */
   10     15   
        crate::output::get_object_output::Builder::default()
          16  +
        /* ServerBuilderGenerator.kt:295 */
   11     17   
    }
          18  +
    /* ServerCodegenVisitor.kt:345 */
   12     19   
}
   13     20   
          21  +
/* StructureGenerator.kt:197 */
   14     22   
#[allow(missing_docs)] // documentation missing in model
          23  +
/* RustType.kt:516 */
   15     24   
#[derive(
   16     25   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   17     26   
)]
   18         -
pub struct DeleteObjectTaggingOutput {
          27  +
pub /* StructureGenerator.kt:201 */ struct DeleteObjectTaggingOutput {
          28  +
    /* StructureGenerator.kt:231 */
   19     29   
    #[allow(missing_docs)] // documentation missing in model
   20     30   
    pub version_id: ::std::option::Option<::std::string::String>,
          31  +
    /* StructureGenerator.kt:201 */
   21     32   
}
          33  +
/* StructureGenerator.kt:135 */
   22     34   
impl DeleteObjectTaggingOutput {
          35  +
    /* StructureGenerator.kt:231 */
   23     36   
    #[allow(missing_docs)] // documentation missing in model
          37  +
                           /* StructureGenerator.kt:166 */
   24     38   
    pub fn version_id(&self) -> ::std::option::Option<&str> {
          39  +
        /* StructureGenerator.kt:169 */
   25     40   
        self.version_id.as_deref()
          41  +
        /* StructureGenerator.kt:166 */
   26     42   
    }
          43  +
    /* StructureGenerator.kt:135 */
   27     44   
}
          45  +
/* ServerCodegenVisitor.kt:345 */
   28     46   
impl DeleteObjectTaggingOutput {
   29         -
    /// Creates a new builder-style object to manufacture [`DeleteObjectTaggingOutput`](crate::output::DeleteObjectTaggingOutput).
          47  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`DeleteObjectTaggingOutput`](crate::output::DeleteObjectTaggingOutput).
          48  +
    /* ServerBuilderGenerator.kt:295 */
   30     49   
    pub fn builder() -> crate::output::delete_object_tagging_output::Builder {
          50  +
        /* ServerBuilderGenerator.kt:296 */
   31     51   
        crate::output::delete_object_tagging_output::Builder::default()
          52  +
        /* ServerBuilderGenerator.kt:295 */
   32     53   
    }
          54  +
    /* ServerCodegenVisitor.kt:345 */
   33     55   
}
   34     56   
          57  +
/* StructureGenerator.kt:197 */
   35     58   
#[allow(missing_docs)] // documentation missing in model
          59  +
/* RustType.kt:516 */
   36     60   
#[derive(
   37     61   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   38     62   
)]
   39         -
pub struct GetBucketLocationOutput {
          63  +
pub /* StructureGenerator.kt:201 */ struct GetBucketLocationOutput {
          64  +
    /* StructureGenerator.kt:231 */
   40     65   
    #[allow(missing_docs)] // documentation missing in model
   41     66   
    pub location_constraint: ::std::option::Option<crate::model::BucketLocationConstraint>,
          67  +
    /* StructureGenerator.kt:201 */
   42     68   
}
          69  +
/* StructureGenerator.kt:135 */
   43     70   
impl GetBucketLocationOutput {
          71  +
    /* StructureGenerator.kt:231 */
   44     72   
    #[allow(missing_docs)] // documentation missing in model
          73  +
                           /* StructureGenerator.kt:166 */
   45     74   
    pub fn location_constraint(
   46     75   
        &self,
   47     76   
    ) -> ::std::option::Option<&crate::model::BucketLocationConstraint> {
          77  +
        /* StructureGenerator.kt:170 */
   48     78   
        self.location_constraint.as_ref()
          79  +
        /* StructureGenerator.kt:166 */
   49     80   
    }
          81  +
    /* StructureGenerator.kt:135 */
   50     82   
}
          83  +
/* ServerCodegenVisitor.kt:345 */
   51     84   
impl GetBucketLocationOutput {
   52         -
    /// Creates a new builder-style object to manufacture [`GetBucketLocationOutput`](crate::output::GetBucketLocationOutput).
          85  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`GetBucketLocationOutput`](crate::output::GetBucketLocationOutput).
          86  +
    /* ServerBuilderGenerator.kt:295 */
   53     87   
    pub fn builder() -> crate::output::get_bucket_location_output::Builder {
          88  +
        /* ServerBuilderGenerator.kt:296 */
   54     89   
        crate::output::get_bucket_location_output::Builder::default()
          90  +
        /* ServerBuilderGenerator.kt:295 */
   55     91   
    }
          92  +
    /* ServerCodegenVisitor.kt:345 */
   56     93   
}
   57     94   
          95  +
/* StructureGenerator.kt:197 */
   58     96   
#[allow(missing_docs)] // documentation missing in model
          97  +
/* RustType.kt:516 */
   59     98   
#[derive(
   60     99   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   61    100   
)]
   62         -
pub struct ListObjectsV2Output {
         101  +
pub /* StructureGenerator.kt:201 */ struct ListObjectsV2Output {
         102  +
    /* StructureGenerator.kt:231 */
   63    103   
    #[allow(missing_docs)] // documentation missing in model
   64    104   
    pub is_truncated: ::std::option::Option<bool>,
         105  +
    /* StructureGenerator.kt:231 */
   65    106   
    #[allow(missing_docs)] // documentation missing in model
   66    107   
    pub contents: ::std::option::Option<::std::vec::Vec<crate::model::Object>>,
         108  +
    /* StructureGenerator.kt:231 */
   67    109   
    #[allow(missing_docs)] // documentation missing in model
   68    110   
    pub name: ::std::option::Option<::std::string::String>,
         111  +
    /* StructureGenerator.kt:231 */
   69    112   
    #[allow(missing_docs)] // documentation missing in model
   70    113   
    pub prefix: ::std::option::Option<::std::string::String>,
         114  +
    /* StructureGenerator.kt:231 */
   71    115   
    #[allow(missing_docs)] // documentation missing in model
   72    116   
    pub delimiter: ::std::option::Option<::std::string::String>,
         117  +
    /* StructureGenerator.kt:231 */
   73    118   
    #[allow(missing_docs)] // documentation missing in model
   74    119   
    pub max_keys: ::std::option::Option<i32>,
         120  +
    /* StructureGenerator.kt:231 */
   75    121   
    #[allow(missing_docs)] // documentation missing in model
   76    122   
    pub common_prefixes: ::std::option::Option<::std::vec::Vec<crate::model::CommonPrefix>>,
         123  +
    /* StructureGenerator.kt:231 */
   77    124   
    #[allow(missing_docs)] // documentation missing in model
   78    125   
    pub encoding_type: ::std::option::Option<crate::model::EncodingType>,
         126  +
    /* StructureGenerator.kt:231 */
   79    127   
    #[allow(missing_docs)] // documentation missing in model
   80    128   
    pub key_count: ::std::option::Option<i32>,
         129  +
    /* StructureGenerator.kt:231 */
   81    130   
    #[allow(missing_docs)] // documentation missing in model
   82    131   
    pub continuation_token: ::std::option::Option<::std::string::String>,
         132  +
    /* StructureGenerator.kt:231 */
   83    133   
    #[allow(missing_docs)] // documentation missing in model
   84    134   
    pub next_continuation_token: ::std::option::Option<::std::string::String>,
         135  +
    /* StructureGenerator.kt:231 */
   85    136   
    #[allow(missing_docs)] // documentation missing in model
   86    137   
    pub start_after: ::std::option::Option<::std::string::String>,
         138  +
    /* StructureGenerator.kt:201 */
   87    139   
}
         140  +
/* StructureGenerator.kt:135 */
   88    141   
impl ListObjectsV2Output {
         142  +
    /* StructureGenerator.kt:231 */
   89    143   
    #[allow(missing_docs)] // documentation missing in model
         144  +
                           /* StructureGenerator.kt:166 */
   90    145   
    pub fn is_truncated(&self) -> ::std::option::Option<bool> {
         146  +
        /* StructureGenerator.kt:168 */
   91    147   
        self.is_truncated
         148  +
        /* StructureGenerator.kt:166 */
   92    149   
    }
         150  +
    /* StructureGenerator.kt:231 */
   93    151   
    #[allow(missing_docs)] // documentation missing in model
         152  +
                           /* StructureGenerator.kt:166 */
   94    153   
    pub fn contents(&self) -> ::std::option::Option<&[crate::model::Object]> {
         154  +
        /* StructureGenerator.kt:169 */
   95    155   
        self.contents.as_deref()
         156  +
        /* StructureGenerator.kt:166 */
   96    157   
    }
         158  +
    /* StructureGenerator.kt:231 */
   97    159   
    #[allow(missing_docs)] // documentation missing in model
         160  +
                           /* StructureGenerator.kt:166 */
   98    161   
    pub fn name(&self) -> ::std::option::Option<&str> {
         162  +
        /* StructureGenerator.kt:169 */
   99    163   
        self.name.as_deref()
         164  +
        /* StructureGenerator.kt:166 */
  100    165   
    }
         166  +
    /* StructureGenerator.kt:231 */
  101    167   
    #[allow(missing_docs)] // documentation missing in model
         168  +
                           /* StructureGenerator.kt:166 */
  102    169   
    pub fn prefix(&self) -> ::std::option::Option<&str> {
         170  +
        /* StructureGenerator.kt:169 */
  103    171   
        self.prefix.as_deref()
         172  +
        /* StructureGenerator.kt:166 */
  104    173   
    }
         174  +
    /* StructureGenerator.kt:231 */
  105    175   
    #[allow(missing_docs)] // documentation missing in model
         176  +
                           /* StructureGenerator.kt:166 */
  106    177   
    pub fn delimiter(&self) -> ::std::option::Option<&str> {
         178  +
        /* StructureGenerator.kt:169 */
  107    179   
        self.delimiter.as_deref()
         180  +
        /* StructureGenerator.kt:166 */
  108    181   
    }
         182  +
    /* StructureGenerator.kt:231 */
  109    183   
    #[allow(missing_docs)] // documentation missing in model
         184  +
                           /* StructureGenerator.kt:166 */
  110    185   
    pub fn max_keys(&self) -> ::std::option::Option<i32> {
         186  +
        /* StructureGenerator.kt:168 */
  111    187   
        self.max_keys
         188  +
        /* StructureGenerator.kt:166 */
  112    189   
    }
         190  +
    /* StructureGenerator.kt:231 */
  113    191   
    #[allow(missing_docs)] // documentation missing in model
         192  +
                           /* StructureGenerator.kt:166 */
  114    193   
    pub fn common_prefixes(&self) -> ::std::option::Option<&[crate::model::CommonPrefix]> {
         194  +
        /* StructureGenerator.kt:169 */
  115    195   
        self.common_prefixes.as_deref()
         196  +
        /* StructureGenerator.kt:166 */
  116    197   
    }
         198  +
    /* StructureGenerator.kt:231 */
  117    199   
    #[allow(missing_docs)] // documentation missing in model
         200  +
                           /* StructureGenerator.kt:166 */
  118    201   
    pub fn encoding_type(&self) -> ::std::option::Option<&crate::model::EncodingType> {
         202  +
        /* StructureGenerator.kt:170 */
  119    203   
        self.encoding_type.as_ref()
         204  +
        /* StructureGenerator.kt:166 */
  120    205   
    }
         206  +
    /* StructureGenerator.kt:231 */
  121    207   
    #[allow(missing_docs)] // documentation missing in model
         208  +
                           /* StructureGenerator.kt:166 */
  122    209   
    pub fn key_count(&self) -> ::std::option::Option<i32> {
         210  +
        /* StructureGenerator.kt:168 */
  123    211   
        self.key_count
         212  +
        /* StructureGenerator.kt:166 */
  124    213   
    }
         214  +
    /* StructureGenerator.kt:231 */
  125    215   
    #[allow(missing_docs)] // documentation missing in model
         216  +
                           /* StructureGenerator.kt:166 */
  126    217   
    pub fn continuation_token(&self) -> ::std::option::Option<&str> {
         218  +
        /* StructureGenerator.kt:169 */
  127    219   
        self.continuation_token.as_deref()
         220  +
        /* StructureGenerator.kt:166 */
  128    221   
    }
         222  +
    /* StructureGenerator.kt:231 */
  129    223   
    #[allow(missing_docs)] // documentation missing in model
         224  +
                           /* StructureGenerator.kt:166 */
  130    225   
    pub fn next_continuation_token(&self) -> ::std::option::Option<&str> {
         226  +
        /* StructureGenerator.kt:169 */
  131    227   
        self.next_continuation_token.as_deref()
         228  +
        /* StructureGenerator.kt:166 */
  132    229   
    }
         230  +
    /* StructureGenerator.kt:231 */
  133    231   
    #[allow(missing_docs)] // documentation missing in model
         232  +
                           /* StructureGenerator.kt:166 */
  134    233   
    pub fn start_after(&self) -> ::std::option::Option<&str> {
         234  +
        /* StructureGenerator.kt:169 */
  135    235   
        self.start_after.as_deref()
         236  +
        /* StructureGenerator.kt:166 */
  136    237   
    }
         238  +
    /* StructureGenerator.kt:135 */
  137    239   
}
         240  +
/* ServerCodegenVisitor.kt:345 */
  138    241   
impl ListObjectsV2Output {
  139         -
    /// Creates a new builder-style object to manufacture [`ListObjectsV2Output`](crate::output::ListObjectsV2Output).
         242  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`ListObjectsV2Output`](crate::output::ListObjectsV2Output).
         243  +
    /* ServerBuilderGenerator.kt:295 */
  140    244   
    pub fn builder() -> crate::output::list_objects_v2_output::Builder {
         245  +
        /* ServerBuilderGenerator.kt:296 */
  141    246   
        crate::output::list_objects_v2_output::Builder::default()
         247  +
        /* ServerBuilderGenerator.kt:295 */
  142    248   
    }
         249  +
    /* ServerCodegenVisitor.kt:345 */
  143    250   
}
  144         -
/// See [`GetObjectOutput`](crate::output::GetObjectOutput).
         251  +
/// /* ServerBuilderGenerator.kt:171 */See [`GetObjectOutput`](crate::output::GetObjectOutput).
  145    252   
pub mod get_object_output {
  146    253   
         254  +
    /* ServerBuilderGenerator.kt:461 */
  147    255   
    impl ::std::convert::From<Builder> for crate::output::GetObjectOutput {
  148    256   
        fn from(builder: Builder) -> Self {
  149    257   
            builder.build()
  150    258   
        }
  151    259   
    }
  152         -
    /// A builder for [`GetObjectOutput`](crate::output::GetObjectOutput).
         260  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`GetObjectOutput`](crate::output::GetObjectOutput).
         261  +
    /* RustType.kt:516 */
  153    262   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  154         -
    pub struct Builder {}
         263  +
    /* ServerBuilderGenerator.kt:211 */
         264  +
    pub struct Builder {/* ServerBuilderGenerator.kt:211 */}
         265  +
    /* ServerBuilderGenerator.kt:215 */
  155    266   
    impl Builder {
  156         -
        /// Consumes the builder and constructs a [`GetObjectOutput`](crate::output::GetObjectOutput).
         267  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`GetObjectOutput`](crate::output::GetObjectOutput).
         268  +
        /* ServerBuilderGenerator.kt:271 */
  157    269   
        pub fn build(self) -> crate::output::GetObjectOutput {
  158    270   
            self.build_enforcing_all_constraints()
  159    271   
        }
         272  +
        /* ServerBuilderGenerator.kt:283 */
  160    273   
        fn build_enforcing_all_constraints(self) -> crate::output::GetObjectOutput {
  161         -
            crate::output::GetObjectOutput {}
         274  +
            /* ServerBuilderGenerator.kt:542 */
         275  +
            crate::output::GetObjectOutput {
         276  +
            /* ServerBuilderGenerator.kt:542 */}
         277  +
            /* ServerBuilderGenerator.kt:283 */
  162    278   
        }
         279  +
        /* ServerBuilderGenerator.kt:215 */
  163    280   
    }
         281  +
         282  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  164    283   
}
  165         -
/// See [`DeleteObjectTaggingOutput`](crate::output::DeleteObjectTaggingOutput).
         284  +
/// /* ServerBuilderGenerator.kt:171 */See [`DeleteObjectTaggingOutput`](crate::output::DeleteObjectTaggingOutput).
  166    285   
pub mod delete_object_tagging_output {
  167    286   
         287  +
    /* ServerBuilderGenerator.kt:461 */
  168    288   
    impl ::std::convert::From<Builder> for crate::output::DeleteObjectTaggingOutput {
  169    289   
        fn from(builder: Builder) -> Self {
  170    290   
            builder.build()
  171    291   
        }
  172    292   
    }
  173         -
    /// A builder for [`DeleteObjectTaggingOutput`](crate::output::DeleteObjectTaggingOutput).
         293  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`DeleteObjectTaggingOutput`](crate::output::DeleteObjectTaggingOutput).
         294  +
    /* RustType.kt:516 */
  174    295   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         296  +
    /* ServerBuilderGenerator.kt:211 */
  175    297   
    pub struct Builder {
         298  +
        /* ServerBuilderGenerator.kt:308 */
  176    299   
        pub(crate) version_id: ::std::option::Option<::std::string::String>,
         300  +
        /* ServerBuilderGenerator.kt:211 */
  177    301   
    }
         302  +
    /* ServerBuilderGenerator.kt:215 */
  178    303   
    impl Builder {
         304  +
        /* ServerBuilderGenerator.kt:331 */
  179    305   
        #[allow(missing_docs)] // documentation missing in model
         306  +
                               /* ServerBuilderGenerator.kt:343 */
  180    307   
        pub fn version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  181         -
            self.version_id = input;
         308  +
            /* ServerBuilderGenerator.kt:344 */
         309  +
            self.version_id =
         310  +
                /* ServerBuilderGenerator.kt:376 */input
         311  +
            /* ServerBuilderGenerator.kt:344 */;
  182    312   
            self
         313  +
            /* ServerBuilderGenerator.kt:343 */
  183    314   
        }
  184         -
        /// Consumes the builder and constructs a [`DeleteObjectTaggingOutput`](crate::output::DeleteObjectTaggingOutput).
         315  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`DeleteObjectTaggingOutput`](crate::output::DeleteObjectTaggingOutput).
         316  +
        /* ServerBuilderGenerator.kt:271 */
  185    317   
        pub fn build(self) -> crate::output::DeleteObjectTaggingOutput {
  186    318   
            self.build_enforcing_all_constraints()
  187    319   
        }
         320  +
        /* ServerBuilderGenerator.kt:283 */
  188    321   
        fn build_enforcing_all_constraints(self) -> crate::output::DeleteObjectTaggingOutput {
         322  +
            /* ServerBuilderGenerator.kt:542 */
  189    323   
            crate::output::DeleteObjectTaggingOutput {
         324  +
                /* ServerBuilderGenerator.kt:546 */
  190    325   
                version_id: self.version_id,
         326  +
                /* ServerBuilderGenerator.kt:542 */
  191    327   
            }
         328  +
            /* ServerBuilderGenerator.kt:283 */
  192    329   
        }
         330  +
        /* ServerBuilderGenerator.kt:215 */
  193    331   
    }
         332  +
         333  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  194    334   
}
  195         -
/// See [`GetBucketLocationOutput`](crate::output::GetBucketLocationOutput).
         335  +
/// /* ServerBuilderGenerator.kt:171 */See [`GetBucketLocationOutput`](crate::output::GetBucketLocationOutput).
  196    336   
pub mod get_bucket_location_output {
  197    337   
         338  +
    /* ServerBuilderGenerator.kt:461 */
  198    339   
    impl ::std::convert::From<Builder> for crate::output::GetBucketLocationOutput {
  199    340   
        fn from(builder: Builder) -> Self {
  200    341   
            builder.build()
  201    342   
        }
  202    343   
    }
  203         -
    /// A builder for [`GetBucketLocationOutput`](crate::output::GetBucketLocationOutput).
         344  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`GetBucketLocationOutput`](crate::output::GetBucketLocationOutput).
         345  +
    /* RustType.kt:516 */
  204    346   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         347  +
    /* ServerBuilderGenerator.kt:211 */
  205    348   
    pub struct Builder {
         349  +
        /* ServerBuilderGenerator.kt:308 */
  206    350   
        pub(crate) location_constraint:
  207    351   
            ::std::option::Option<crate::model::BucketLocationConstraint>,
         352  +
        /* ServerBuilderGenerator.kt:211 */
  208    353   
    }
         354  +
    /* ServerBuilderGenerator.kt:215 */
  209    355   
    impl Builder {
         356  +
        /* ServerBuilderGenerator.kt:331 */
  210    357   
        #[allow(missing_docs)] // documentation missing in model
         358  +
                               /* ServerBuilderGenerator.kt:343 */
  211    359   
        pub fn location_constraint(
  212    360   
            mut self,
  213    361   
            input: ::std::option::Option<crate::model::BucketLocationConstraint>,
  214    362   
        ) -> Self {
  215         -
            self.location_constraint = input;
         363  +
            /* ServerBuilderGenerator.kt:344 */
         364  +
            self.location_constraint =
         365  +
                /* ServerBuilderGenerator.kt:376 */input
         366  +
            /* ServerBuilderGenerator.kt:344 */;
  216    367   
            self
         368  +
            /* ServerBuilderGenerator.kt:343 */
  217    369   
        }
  218         -
        /// Consumes the builder and constructs a [`GetBucketLocationOutput`](crate::output::GetBucketLocationOutput).
         370  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`GetBucketLocationOutput`](crate::output::GetBucketLocationOutput).
         371  +
        /* ServerBuilderGenerator.kt:271 */
  219    372   
        pub fn build(self) -> crate::output::GetBucketLocationOutput {
  220    373   
            self.build_enforcing_all_constraints()
  221    374   
        }
         375  +
        /* ServerBuilderGenerator.kt:283 */
  222    376   
        fn build_enforcing_all_constraints(self) -> crate::output::GetBucketLocationOutput {
         377  +
            /* ServerBuilderGenerator.kt:542 */
  223    378   
            crate::output::GetBucketLocationOutput {
         379  +
                /* ServerBuilderGenerator.kt:546 */
  224    380   
                location_constraint: self.location_constraint,
         381  +
                /* ServerBuilderGenerator.kt:542 */
  225    382   
            }
         383  +
            /* ServerBuilderGenerator.kt:283 */
  226    384   
        }
         385  +
        /* ServerBuilderGenerator.kt:215 */
  227    386   
    }
         387  +
         388  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  228    389   
}
  229         -
/// See [`ListObjectsV2Output`](crate::output::ListObjectsV2Output).
         390  +
/// /* ServerBuilderGenerator.kt:171 */See [`ListObjectsV2Output`](crate::output::ListObjectsV2Output).
  230    391   
pub mod list_objects_v2_output {
  231    392   
         393  +
    /* ServerBuilderGenerator.kt:461 */
  232    394   
    impl ::std::convert::From<Builder> for crate::output::ListObjectsV2Output {
  233    395   
        fn from(builder: Builder) -> Self {
  234    396   
            builder.build()
  235    397   
        }
  236    398   
    }
  237         -
    /// A builder for [`ListObjectsV2Output`](crate::output::ListObjectsV2Output).
         399  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`ListObjectsV2Output`](crate::output::ListObjectsV2Output).
         400  +
    /* RustType.kt:516 */
  238    401   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         402  +
    /* ServerBuilderGenerator.kt:211 */
  239    403   
    pub struct Builder {
         404  +
        /* ServerBuilderGenerator.kt:308 */
  240    405   
        pub(crate) is_truncated: ::std::option::Option<bool>,
         406  +
        /* ServerBuilderGenerator.kt:308 */
  241    407   
        pub(crate) contents: ::std::option::Option<::std::vec::Vec<crate::model::Object>>,
         408  +
        /* ServerBuilderGenerator.kt:308 */
  242    409   
        pub(crate) name: ::std::option::Option<::std::string::String>,
         410  +
        /* ServerBuilderGenerator.kt:308 */
  243    411   
        pub(crate) prefix: ::std::option::Option<::std::string::String>,
         412  +
        /* ServerBuilderGenerator.kt:308 */
  244    413   
        pub(crate) delimiter: ::std::option::Option<::std::string::String>,
  245         -
        pub(crate) max_keys: ::std::option::Option<i32>,
         414  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) max_keys: ::std::option::Option<i32>,
         415  +
        /* ServerBuilderGenerator.kt:308 */
  246    416   
        pub(crate) common_prefixes:
  247    417   
            ::std::option::Option<::std::vec::Vec<crate::model::CommonPrefix>>,
         418  +
        /* ServerBuilderGenerator.kt:308 */
  248    419   
        pub(crate) encoding_type: ::std::option::Option<crate::model::EncodingType>,
  249         -
        pub(crate) key_count: ::std::option::Option<i32>,
         420  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) key_count: ::std::option::Option<i32>,
         421  +
        /* ServerBuilderGenerator.kt:308 */
  250    422   
        pub(crate) continuation_token: ::std::option::Option<::std::string::String>,
         423  +
        /* ServerBuilderGenerator.kt:308 */
  251    424   
        pub(crate) next_continuation_token: ::std::option::Option<::std::string::String>,
         425  +
        /* ServerBuilderGenerator.kt:308 */
  252    426   
        pub(crate) start_after: ::std::option::Option<::std::string::String>,
         427  +
        /* ServerBuilderGenerator.kt:211 */
  253    428   
    }
         429  +
    /* ServerBuilderGenerator.kt:215 */
  254    430   
    impl Builder {
         431  +
        /* ServerBuilderGenerator.kt:331 */
  255    432   
        #[allow(missing_docs)] // documentation missing in model
         433  +
                               /* ServerBuilderGenerator.kt:343 */
  256    434   
        pub fn is_truncated(mut self, input: ::std::option::Option<bool>) -> Self {
  257         -
            self.is_truncated = input;
         435  +
            /* ServerBuilderGenerator.kt:344 */
         436  +
            self.is_truncated =
         437  +
                /* ServerBuilderGenerator.kt:376 */input
         438  +
            /* ServerBuilderGenerator.kt:344 */;
  258    439   
            self
         440  +
            /* ServerBuilderGenerator.kt:343 */
  259    441   
        }
         442  +
        /* ServerBuilderGenerator.kt:331 */
  260    443   
        #[allow(missing_docs)] // documentation missing in model
         444  +
                               /* ServerBuilderGenerator.kt:343 */
  261    445   
        pub fn contents(
  262    446   
            mut self,
  263    447   
            input: ::std::option::Option<::std::vec::Vec<crate::model::Object>>,
  264    448   
        ) -> Self {
  265         -
            self.contents = input;
         449  +
            /* ServerBuilderGenerator.kt:344 */
         450  +
            self.contents =
         451  +
                /* ServerBuilderGenerator.kt:376 */input
         452  +
            /* ServerBuilderGenerator.kt:344 */;
  266    453   
            self
         454  +
            /* ServerBuilderGenerator.kt:343 */
  267    455   
        }
         456  +
        /* ServerBuilderGenerator.kt:331 */
  268    457   
        #[allow(missing_docs)] // documentation missing in model
         458  +
                               /* ServerBuilderGenerator.kt:343 */
  269    459   
        pub fn name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  270         -
            self.name = input;
         460  +
            /* ServerBuilderGenerator.kt:344 */
         461  +
            self.name =
         462  +
                /* ServerBuilderGenerator.kt:376 */input
         463  +
            /* ServerBuilderGenerator.kt:344 */;
  271    464   
            self
         465  +
            /* ServerBuilderGenerator.kt:343 */
  272    466   
        }
         467  +
        /* ServerBuilderGenerator.kt:331 */
  273    468   
        #[allow(missing_docs)] // documentation missing in model
         469  +
                               /* ServerBuilderGenerator.kt:343 */
  274    470   
        pub fn prefix(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  275         -
            self.prefix = input;
         471  +
            /* ServerBuilderGenerator.kt:344 */
         472  +
            self.prefix =
         473  +
                /* ServerBuilderGenerator.kt:376 */input
         474  +
            /* ServerBuilderGenerator.kt:344 */;
  276    475   
            self
         476  +
            /* ServerBuilderGenerator.kt:343 */
  277    477   
        }
         478  +
        /* ServerBuilderGenerator.kt:331 */
  278    479   
        #[allow(missing_docs)] // documentation missing in model
         480  +
                               /* ServerBuilderGenerator.kt:343 */
  279    481   
        pub fn delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  280         -
            self.delimiter = input;
         482  +
            /* ServerBuilderGenerator.kt:344 */
         483  +
            self.delimiter =
         484  +
                /* ServerBuilderGenerator.kt:376 */input
         485  +
            /* ServerBuilderGenerator.kt:344 */;
  281    486   
            self
         487  +
            /* ServerBuilderGenerator.kt:343 */
  282    488   
        }
         489  +
        /* ServerBuilderGenerator.kt:331 */
  283    490   
        #[allow(missing_docs)] // documentation missing in model
         491  +
                               /* ServerBuilderGenerator.kt:343 */
  284    492   
        pub fn max_keys(mut self, input: ::std::option::Option<i32>) -> Self {
  285         -
            self.max_keys = input;
         493  +
            /* ServerBuilderGenerator.kt:344 */
         494  +
            self.max_keys =
         495  +
                /* ServerBuilderGenerator.kt:376 */input
         496  +
            /* ServerBuilderGenerator.kt:344 */;
  286    497   
            self
         498  +
            /* ServerBuilderGenerator.kt:343 */
  287    499   
        }
         500  +
        /* ServerBuilderGenerator.kt:331 */
  288    501   
        #[allow(missing_docs)] // documentation missing in model
         502  +
                               /* ServerBuilderGenerator.kt:343 */
  289    503   
        pub fn common_prefixes(
  290    504   
            mut self,
  291    505   
            input: ::std::option::Option<::std::vec::Vec<crate::model::CommonPrefix>>,
  292    506   
        ) -> Self {
  293         -
            self.common_prefixes = input;
         507  +
            /* ServerBuilderGenerator.kt:344 */
         508  +
            self.common_prefixes =
         509  +
                /* ServerBuilderGenerator.kt:376 */input
         510  +
            /* ServerBuilderGenerator.kt:344 */;
  294    511   
            self
         512  +
            /* ServerBuilderGenerator.kt:343 */
  295    513   
        }
         514  +
        /* ServerBuilderGenerator.kt:331 */
  296    515   
        #[allow(missing_docs)] // documentation missing in model
         516  +
                               /* ServerBuilderGenerator.kt:343 */
  297    517   
        pub fn encoding_type(
  298    518   
            mut self,
  299    519   
            input: ::std::option::Option<crate::model::EncodingType>,
  300    520   
        ) -> Self {
  301         -
            self.encoding_type = input;
         521  +
            /* ServerBuilderGenerator.kt:344 */
         522  +
            self.encoding_type =
         523  +
                /* ServerBuilderGenerator.kt:376 */input
         524  +
            /* ServerBuilderGenerator.kt:344 */;
  302    525   
            self
         526  +
            /* ServerBuilderGenerator.kt:343 */
  303    527   
        }
         528  +
        /* ServerBuilderGenerator.kt:331 */
  304    529   
        #[allow(missing_docs)] // documentation missing in model
         530  +
                               /* ServerBuilderGenerator.kt:343 */
  305    531   
        pub fn key_count(mut self, input: ::std::option::Option<i32>) -> Self {
  306         -
            self.key_count = input;
         532  +
            /* ServerBuilderGenerator.kt:344 */
         533  +
            self.key_count =
         534  +
                /* ServerBuilderGenerator.kt:376 */input
         535  +
            /* ServerBuilderGenerator.kt:344 */;
  307    536   
            self
         537  +
            /* ServerBuilderGenerator.kt:343 */
  308    538   
        }
         539  +
        /* ServerBuilderGenerator.kt:331 */
  309    540   
        #[allow(missing_docs)] // documentation missing in model
         541  +
                               /* ServerBuilderGenerator.kt:343 */
  310    542   
        pub fn continuation_token(
  311    543   
            mut self,
  312    544   
            input: ::std::option::Option<::std::string::String>,
  313    545   
        ) -> Self {
  314         -
            self.continuation_token = input;
         546  +
            /* ServerBuilderGenerator.kt:344 */
         547  +
            self.continuation_token =
         548  +
                /* ServerBuilderGenerator.kt:376 */input
         549  +
            /* ServerBuilderGenerator.kt:344 */;
  315    550   
            self
         551  +
            /* ServerBuilderGenerator.kt:343 */
  316    552   
        }
         553  +
        /* ServerBuilderGenerator.kt:331 */
  317    554   
        #[allow(missing_docs)] // documentation missing in model
         555  +
                               /* ServerBuilderGenerator.kt:343 */
  318    556   
        pub fn next_continuation_token(
  319    557   
            mut self,
  320    558   
            input: ::std::option::Option<::std::string::String>,
  321    559   
        ) -> Self {
  322         -
            self.next_continuation_token = input;
         560  +
            /* ServerBuilderGenerator.kt:344 */
         561  +
            self.next_continuation_token =
         562  +
                /* ServerBuilderGenerator.kt:376 */input
         563  +
            /* ServerBuilderGenerator.kt:344 */;
  323    564   
            self
         565  +
            /* ServerBuilderGenerator.kt:343 */
  324    566   
        }
         567  +
        /* ServerBuilderGenerator.kt:331 */
  325    568   
        #[allow(missing_docs)] // documentation missing in model
         569  +
                               /* ServerBuilderGenerator.kt:343 */
  326    570   
        pub fn start_after(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  327         -
            self.start_after = input;
         571  +
            /* ServerBuilderGenerator.kt:344 */
         572  +
            self.start_after =
         573  +
                /* ServerBuilderGenerator.kt:376 */input
         574  +
            /* ServerBuilderGenerator.kt:344 */;
  328    575   
            self
         576  +
            /* ServerBuilderGenerator.kt:343 */
  329    577   
        }
  330         -
        /// Consumes the builder and constructs a [`ListObjectsV2Output`](crate::output::ListObjectsV2Output).
         578  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`ListObjectsV2Output`](crate::output::ListObjectsV2Output).
         579  +
        /* ServerBuilderGenerator.kt:271 */
  331    580   
        pub fn build(self) -> crate::output::ListObjectsV2Output {
  332    581   
            self.build_enforcing_all_constraints()
  333    582   
        }
         583  +
        /* ServerBuilderGenerator.kt:283 */
  334    584   
        fn build_enforcing_all_constraints(self) -> crate::output::ListObjectsV2Output {
         585  +
            /* ServerBuilderGenerator.kt:542 */
  335    586   
            crate::output::ListObjectsV2Output {
         587  +
                /* ServerBuilderGenerator.kt:546 */
  336    588   
                is_truncated: self.is_truncated,
         589  +
                /* ServerBuilderGenerator.kt:546 */
  337    590   
                contents: self.contents,
         591  +
                /* ServerBuilderGenerator.kt:546 */
  338    592   
                name: self.name,
         593  +
                /* ServerBuilderGenerator.kt:546 */
  339    594   
                prefix: self.prefix,
         595  +
                /* ServerBuilderGenerator.kt:546 */
  340    596   
                delimiter: self.delimiter,
         597  +
                /* ServerBuilderGenerator.kt:546 */
  341    598   
                max_keys: self.max_keys,
         599  +
                /* ServerBuilderGenerator.kt:546 */
  342    600   
                common_prefixes: self.common_prefixes,
         601  +
                /* ServerBuilderGenerator.kt:546 */
  343    602   
                encoding_type: self.encoding_type,
         603  +
                /* ServerBuilderGenerator.kt:546 */
  344    604   
                key_count: self.key_count,
         605  +
                /* ServerBuilderGenerator.kt:546 */
  345    606   
                continuation_token: self.continuation_token,
         607  +
                /* ServerBuilderGenerator.kt:546 */
  346    608   
                next_continuation_token: self.next_continuation_token,
         609  +
                /* ServerBuilderGenerator.kt:546 */
  347    610   
                start_after: self.start_after,
         611  +
                /* ServerBuilderGenerator.kt:542 */
  348    612   
            }
         613  +
            /* ServerBuilderGenerator.kt:283 */
  349    614   
        }
         615  +
        /* ServerBuilderGenerator.kt:215 */
  350    616   
    }
         617  +
         618  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  351    619   
}

tmp-codegen-diff/codegen-server-test/s3/rust-server-codegen/src/protocol_serde/shape_common_prefix.rs

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

tmp-codegen-diff/codegen-server-test/s3/rust-server-codegen/src/protocol_serde/shape_delete_object_tagging.rs

@@ -1,1 +137,194 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::unnecessary_wraps)]
           4  +
/* ServerHttpBoundProtocolGenerator.kt:383 */
    3      5   
pub async fn de_delete_object_tagging_http_request<B>(
    4      6   
    #[allow(unused_variables)] request: ::http::Request<B>,
    5      7   
) -> std::result::Result<
    6      8   
    crate::input::DeleteObjectTaggingInput,
    7      9   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection,
    8     10   
>
    9     11   
where
   10     12   
    B: ::aws_smithy_http_server::body::HttpBody + Send,
   11     13   
    B::Data: Send,
   12     14   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection:
   13     15   
        From<<B as ::aws_smithy_http_server::body::HttpBody>::Error>,
   14     16   
{
          17  +
    /* ServerHttpBoundProtocolGenerator.kt:399 */
   15     18   
    Ok({
          19  +
        /* RustType.kt:516 */
   16     20   
        #[allow(unused_mut)]
          21  +
        /* ServerHttpBoundProtocolGenerator.kt:723 */
   17     22   
        let mut input = crate::input::delete_object_tagging_input::Builder::default();
          23  +
        /* RustType.kt:516 */
   18     24   
        #[allow(unused_variables)]
          25  +
        /* ServerHttpBoundProtocolGenerator.kt:728 */
   19     26   
        let ::aws_smithy_runtime_api::http::RequestParts {
   20     27   
            uri, headers, body, ..
   21     28   
        } = ::aws_smithy_runtime_api::http::Request::try_from(request)?.into_parts();
          29  +
        /* ServerHttpBoundProtocolGenerator.kt:794 */
   22     30   
        if let Some(value) = crate::protocol_serde::shape_delete_object_tagging_input::de_expected_bucket_owner_header(&headers)? {
   23     31   
                                input = input.set_expected_bucket_owner(Some(value))
   24     32   
                            }
          33  +
        /* ServerHttpBoundProtocolGenerator.kt:986 */
   25     34   
        let input_string = uri.path();
          35  +
        /* ServerHttpBoundProtocolGenerator.kt:998 */
   26     36   
        let (input_string, (m0, m1)) =
   27     37   
            ::nom::sequence::tuple::<_, _, ::nom::error::Error<&str>, _>((
   28     38   
                ::nom::sequence::preceded(
   29     39   
                    ::nom::bytes::complete::tag("/"),
   30     40   
                    ::nom::branch::alt::<_, _, ::nom::error::Error<&str>, _>((
   31     41   
                        ::nom::bytes::complete::take_until("/"),
   32     42   
                        ::nom::combinator::rest,
   33     43   
                    )),
   34     44   
                ),
   35     45   
                ::nom::sequence::preceded(
   36     46   
                    ::nom::bytes::complete::tag("/"),
   37     47   
                    ::nom::combinator::rest::<_, ::nom::error::Error<&str>>,
   38     48   
                ),
   39     49   
            ))(input_string)?;
   40     50   
        debug_assert_eq!("", input_string);
          51  +
        /* ServerHttpBoundProtocolGenerator.kt:1009 */
   41     52   
        input = input
   42     53   
            .set_bucket(crate::protocol_serde::shape_delete_object_tagging_input::de_bucket(m0)?);
          54  +
        /* ServerHttpBoundProtocolGenerator.kt:1009 */
   43     55   
        input =
   44     56   
            input.set_key(crate::protocol_serde::shape_delete_object_tagging_input::de_key(m1)?);
          57  +
        /* ServerHttpBoundProtocolGenerator.kt:1073 */
   45     58   
        let query_string = uri.query().unwrap_or("");
   46     59   
        let pairs = ::form_urlencoded::parse(query_string.as_bytes());
          60  +
        /* ServerHttpBoundProtocolGenerator.kt:1099 */
   47     61   
        let mut version_id_seen = false;
          62  +
        /* ServerHttpBoundProtocolGenerator.kt:1105 */
   48     63   
        for (k, v) in pairs {
          64  +
            /* ServerHttpBoundProtocolGenerator.kt:1109 */
   49     65   
            if !version_id_seen && k == "versionId" {
   50     66   
                input = input.set_version_id(
   51     67   
                    crate::protocol_serde::shape_delete_object_tagging_input::de_version_id(&v)?,
   52     68   
                );
   53     69   
                version_id_seen = true;
   54     70   
            }
          71  +
            /* ServerHttpBoundProtocolGenerator.kt:1105 */
   55     72   
        }
          73  +
        /* ServerHttpBoundProtocolGenerator.kt:834 */
   56     74   
        input.build()?
          75  +
        /* ServerHttpBoundProtocolGenerator.kt:399 */
   57     76   
    })
          77  +
    /* ServerHttpBoundProtocolGenerator.kt:383 */
   58     78   
}
   59     79   
          80  +
/* RustType.kt:516 */
   60     81   
#[allow(clippy::unnecessary_wraps)]
          82  +
/* ServerHttpBoundProtocolGenerator.kt:421 */
   61     83   
pub fn ser_delete_object_tagging_http_response(
   62     84   
    #[allow(unused_variables)] output: crate::output::DeleteObjectTaggingOutput,
   63     85   
) -> std::result::Result<
   64     86   
    ::aws_smithy_http_server::response::Response,
   65     87   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::ResponseRejection,
   66     88   
> {
          89  +
    /* ServerHttpBoundProtocolGenerator.kt:433 */
   67     90   
    Ok({
          91  +
        /* RustType.kt:516 */
   68     92   
        #[allow(unused_mut)]
          93  +
        /* ServerHttpBoundProtocolGenerator.kt:523 */
   69     94   
        let mut builder = ::http::Response::builder();
          95  +
        /* ServerHttpBoundProtocolGenerator.kt:629 */
   70     96   
        builder =
   71     97   
            crate::protocol_serde::shape_delete_object_tagging::ser_delete_object_tagging_headers(
   72     98   
                &output, builder,
   73     99   
            )?;
         100  +
        /* ServerHttpBoundProtocolGenerator.kt:682 */
   74    101   
        let http_status: u16 = 204;
   75    102   
        builder = builder.status(http_status);
   76         -
        let payload = "";
         103  +
        /* ServerHttpBoundProtocolGenerator.kt:561 */
         104  +
        let payload =
         105  +
            /* HttpBoundProtocolPayloadGenerator.kt:235 */""
         106  +
        /* ServerHttpBoundProtocolGenerator.kt:561 */;
         107  +
        /* ServerHttpBoundProtocolGenerator.kt:663 */
   77    108   
        let content_length = payload.len();
   78    109   
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
   79    110   
            builder,
   80    111   
            ::http::header::CONTENT_LENGTH,
   81    112   
            content_length,
   82    113   
        );
         114  +
        /* ServerHttpBoundProtocolGenerator.kt:567 */
   83    115   
        let body = ::aws_smithy_http_server::body::to_boxed(payload);
         116  +
        /* ServerHttpBoundProtocolGenerator.kt:575 */
   84    117   
        builder.body(body)?
         118  +
        /* ServerHttpBoundProtocolGenerator.kt:433 */
   85    119   
    })
         120  +
    /* ServerHttpBoundProtocolGenerator.kt:421 */
   86    121   
}
   87    122   
         123  +
/* RustType.kt:516 */
   88    124   
#[allow(clippy::unnecessary_wraps)]
         125  +
/* ServerHttpBoundProtocolGenerator.kt:447 */
   89    126   
pub fn ser_delete_object_tagging_http_error(
   90    127   
    error: &crate::error::DeleteObjectTaggingError,
   91    128   
) -> std::result::Result<
   92    129   
    ::aws_smithy_http_server::response::Response,
   93    130   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::ResponseRejection,
   94    131   
> {
         132  +
    /* ServerHttpBoundProtocolGenerator.kt:452 */
   95    133   
    Ok({
         134  +
        /* ServerHttpBoundProtocolGenerator.kt:468 */
   96    135   
        match error {
         136  +
            /* ServerHttpBoundProtocolGenerator.kt:476 */
   97    137   
            crate::error::DeleteObjectTaggingError::ValidationException(output) => {
         138  +
                /* ServerHttpBoundProtocolGenerator.kt:477 */
   98    139   
                let payload = crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(output)?;
         140  +
                /* RustType.kt:516 */
   99    141   
                #[allow(unused_mut)]
         142  +
                /* ServerHttpBoundProtocolGenerator.kt:487 */
  100    143   
                let mut builder = ::http::Response::builder();
         144  +
                /* ServerHttpBoundProtocolGenerator.kt:663 */
  101    145   
                let content_length = payload.len();
  102    146   
                builder = ::aws_smithy_http::header::set_response_header_if_absent(
  103    147   
                    builder,
  104    148   
                    ::http::header::CONTENT_LENGTH,
  105    149   
                    content_length,
  106    150   
                );
         151  +
                /* ServerHttpBoundProtocolGenerator.kt:504 */
  107    152   
                builder
  108    153   
                    .status(400)
  109    154   
                    .body(::aws_smithy_http_server::body::to_boxed(payload))?
         155  +
                /* ServerHttpBoundProtocolGenerator.kt:476 */
         156  +
            } /* ServerHttpBoundProtocolGenerator.kt:468 */
  110    157   
        }
  111         -
        }
         158  +
        /* ServerHttpBoundProtocolGenerator.kt:452 */
  112    159   
    })
         160  +
    /* ServerHttpBoundProtocolGenerator.kt:447 */
  113    161   
}
  114    162   
         163  +
/* HttpBindingGenerator.kt:542 */
  115    164   
pub fn ser_delete_object_tagging_headers(
  116    165   
    input: &crate::output::DeleteObjectTaggingOutput,
  117    166   
    mut builder: ::http::response::Builder,
  118    167   
) -> std::result::Result<::http::response::Builder, ::aws_smithy_types::error::operation::BuildError>
  119    168   
{
         169  +
    /* HttpBindingGenerator.kt:592 */
  120    170   
    if let ::std::option::Option::Some(inner_1) = &input.version_id {
         171  +
        /* HttpBindingGenerator.kt:704 */
  121    172   
        let formatted_2 = inner_1.as_str();
         173  +
        /* HttpBindingGenerator.kt:705 */
  122    174   
        if !formatted_2.is_empty() {
         175  +
            /* HttpBindingGenerator.kt:706 */
  123    176   
            let header_value = formatted_2;
  124    177   
            let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  125    178   
                ::aws_smithy_types::error::operation::BuildError::invalid_field(
  126    179   
                    "version_id",
  127    180   
                    format!(
  128    181   
                        "`{}` cannot be used as a header value: {}",
  129    182   
                        &header_value, err
  130    183   
                    ),
  131    184   
                )
  132    185   
            })?;
  133    186   
            builder = builder.header("x-amz-version-id", header_value);
         187  +
            /* HttpBindingGenerator.kt:705 */
  134    188   
        }
         189  +
        /* HttpBindingGenerator.kt:592 */
  135    190   
    }
         191  +
    /* HttpBindingGenerator.kt:555 */
  136    192   
    Ok(builder)
         193  +
    /* HttpBindingGenerator.kt:542 */
  137    194   
}

tmp-codegen-diff/codegen-server-test/s3/rust-server-codegen/src/protocol_serde/shape_delete_object_tagging_input.rs

@@ -1,1 +44,60 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* HttpBindingGenerator.kt:153 */
    2      3   
pub(crate) fn de_expected_bucket_owner_header(
    3      4   
    header_map: &::aws_smithy_runtime_api::http::Headers,
    4      5   
) -> ::std::result::Result<
    5      6   
    ::std::option::Option<::std::string::String>,
    6      7   
    ::aws_smithy_http::header::ParseError,
    7      8   
> {
           9  +
    /* HttpBindingGenerator.kt:160 */
    8     10   
    let headers = header_map.get_all("x-amz-expected-bucket-owner");
          11  +
    /* HttpBindingGenerator.kt:375 */
    9     12   
    ::aws_smithy_http::header::one_or_none(headers)
          13  +
    /* HttpBindingGenerator.kt:153 */
   10     14   
}
   11     15   
          16  +
/* ServerHttpBoundProtocolGenerator.kt:1292 */
   12     17   
pub fn de_bucket(
   13     18   
    value: &str,
   14     19   
) -> std::result::Result<
   15     20   
    ::std::string::String,
   16     21   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection,
   17     22   
> {
          23  +
    /* ServerHttpBoundProtocolGenerator.kt:1302 */
   18     24   
    let value = ::percent_encoding::percent_decode_str(value)
   19     25   
        .decode_utf8()?
   20     26   
        .into_owned();
          27  +
    /* ServerHttpBoundProtocolGenerator.kt:1357 */
   21     28   
    Ok(value)
          29  +
    /* ServerHttpBoundProtocolGenerator.kt:1292 */
   22     30   
}
   23     31   
          32  +
/* ServerHttpBoundProtocolGenerator.kt:1292 */
   24     33   
pub fn de_key(
   25     34   
    value: &str,
   26     35   
) -> std::result::Result<
   27     36   
    ::std::string::String,
   28     37   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection,
   29     38   
> {
          39  +
    /* ServerHttpBoundProtocolGenerator.kt:1302 */
   30     40   
    let value = ::percent_encoding::percent_decode_str(value)
   31     41   
        .decode_utf8()?
   32     42   
        .into_owned();
          43  +
    /* ServerHttpBoundProtocolGenerator.kt:1357 */
   33     44   
    Ok(value)
          45  +
    /* ServerHttpBoundProtocolGenerator.kt:1292 */
   34     46   
}
   35     47   
          48  +
/* ServerHttpBoundProtocolGenerator.kt:1292 */
   36     49   
pub fn de_version_id(
   37     50   
    value: &str,
   38     51   
) -> std::result::Result<
   39     52   
    ::std::option::Option<::std::string::String>,
   40     53   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection,
   41     54   
> {
          55  +
    /* ServerHttpBoundProtocolGenerator.kt:1309 */
   42     56   
    let value = value.to_owned();
          57  +
    /* ServerHttpBoundProtocolGenerator.kt:1357 */
   43     58   
    Ok(Some(value))
          59  +
    /* ServerHttpBoundProtocolGenerator.kt:1292 */
   44     60   
}

tmp-codegen-diff/codegen-server-test/s3/rust-server-codegen/src/protocol_serde/shape_get_bucket_location.rs

@@ -1,1 +114,161 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::unnecessary_wraps)]
           4  +
/* ServerHttpBoundProtocolGenerator.kt:383 */
    3      5   
pub async fn de_get_bucket_location_http_request<B>(
    4      6   
    #[allow(unused_variables)] request: ::http::Request<B>,
    5      7   
) -> std::result::Result<
    6      8   
    crate::input::GetBucketLocationInput,
    7      9   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection,
    8     10   
>
    9     11   
where
   10     12   
    B: ::aws_smithy_http_server::body::HttpBody + Send,
   11     13   
    B::Data: Send,
   12     14   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::RequestRejection:
   13     15   
        From<<B as ::aws_smithy_http_server::body::HttpBody>::Error>,
   14     16   
{
          17  +
    /* ServerHttpBoundProtocolGenerator.kt:399 */
   15     18   
    Ok({
          19  +
        /* RustType.kt:516 */
   16     20   
        #[allow(unused_mut)]
          21  +
        /* ServerHttpBoundProtocolGenerator.kt:723 */
   17     22   
        let mut input = crate::input::get_bucket_location_input::Builder::default();
          23  +
        /* RustType.kt:516 */
   18     24   
        #[allow(unused_variables)]
          25  +
        /* ServerHttpBoundProtocolGenerator.kt:728 */
   19     26   
        let ::aws_smithy_runtime_api::http::RequestParts {
   20     27   
            uri, headers, body, ..
   21     28   
        } = ::aws_smithy_runtime_api::http::Request::try_from(request)?.into_parts();
          29  +
        /* ServerHttpBoundProtocolGenerator.kt:986 */
   22     30   
        let input_string = uri.path();
          31  +
        /* ServerHttpBoundProtocolGenerator.kt:998 */
   23     32   
        let (input_string, m0) = ::nom::sequence::preceded(
   24     33   
            ::nom::bytes::complete::tag("/"),
   25     34   
            ::nom::branch::alt::<_, _, ::nom::error::Error<&str>, _>((
   26     35   
                ::nom::bytes::complete::take_until("/"),
   27     36   
                ::nom::combinator::rest,
   28     37   
            )),
   29     38   
        )(input_string)?;
   30     39   
        debug_assert_eq!("", input_string);
          40  +
        /* ServerHttpBoundProtocolGenerator.kt:1009 */
   31     41   
        input = input
   32     42   
            .set_bucket(crate::protocol_serde::shape_get_bucket_location_input::de_bucket(m0)?);
          43  +
        /* ServerHttpBoundProtocolGenerator.kt:834 */
   33     44   
        input.build()?
          45  +
        /* ServerHttpBoundProtocolGenerator.kt:399 */
   34     46   
    })
          47  +
    /* ServerHttpBoundProtocolGenerator.kt:383 */
   35     48   
}
   36     49   
          50  +
/* RustType.kt:516 */
   37     51   
#[allow(clippy::unnecessary_wraps)]
          52  +
/* ServerHttpBoundProtocolGenerator.kt:421 */
   38     53   
pub fn ser_get_bucket_location_http_response(
   39     54   
    #[allow(unused_variables)] output: crate::output::GetBucketLocationOutput,
   40     55   
) -> std::result::Result<
   41     56   
    ::aws_smithy_http_server::response::Response,
   42     57   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::ResponseRejection,
   43     58   
> {
          59  +
    /* ServerHttpBoundProtocolGenerator.kt:433 */
   44     60   
    Ok({
          61  +
        /* RustType.kt:516 */
   45     62   
        #[allow(unused_mut)]
          63  +
        /* ServerHttpBoundProtocolGenerator.kt:523 */
   46     64   
        let mut builder = ::http::Response::builder();
          65  +
        /* ServerHttpBoundProtocolGenerator.kt:597 */
   47     66   
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
   48     67   
            builder,
   49     68   
            ::http::header::CONTENT_TYPE,
   50     69   
            "application/xml",
   51     70   
        );
          71  +
        /* ServerHttpBoundProtocolGenerator.kt:682 */
   52     72   
        let http_status: u16 = 200;
   53     73   
        builder = builder.status(http_status);
          74  +
        /* ServerHttpBoundProtocolGenerator.kt:561 */
   54     75   
        let payload =
   55         -
            crate::protocol_serde::shape_get_bucket_location::ser_get_bucket_location_output(
   56         -
                &output,
   57         -
            )?;
          76  +
            /* HttpBoundProtocolPayloadGenerator.kt:237 */crate::protocol_serde::shape_get_bucket_location::ser_get_bucket_location_output(&output)?
          77  +
        /* ServerHttpBoundProtocolGenerator.kt:561 */;
          78  +
        /* ServerHttpBoundProtocolGenerator.kt:663 */
   58     79   
        let content_length = payload.len();
   59     80   
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
   60     81   
            builder,
   61     82   
            ::http::header::CONTENT_LENGTH,
   62     83   
            content_length,
   63     84   
        );
          85  +
        /* ServerHttpBoundProtocolGenerator.kt:567 */
   64     86   
        let body = ::aws_smithy_http_server::body::to_boxed(payload);
          87  +
        /* ServerHttpBoundProtocolGenerator.kt:575 */
   65     88   
        builder.body(body)?
          89  +
        /* ServerHttpBoundProtocolGenerator.kt:433 */
   66     90   
    })
          91  +
    /* ServerHttpBoundProtocolGenerator.kt:421 */
   67     92   
}
   68     93   
          94  +
/* RustType.kt:516 */
   69     95   
#[allow(clippy::unnecessary_wraps)]
          96  +
/* ServerHttpBoundProtocolGenerator.kt:447 */
   70     97   
pub fn ser_get_bucket_location_http_error(
   71     98   
    error: &crate::error::GetBucketLocationError,
   72     99   
) -> std::result::Result<
   73    100   
    ::aws_smithy_http_server::response::Response,
   74    101   
    ::aws_smithy_http_server::protocol::rest_xml::rejection::ResponseRejection,
   75    102   
> {
         103  +
    /* ServerHttpBoundProtocolGenerator.kt:452 */
   76    104   
    Ok({
         105  +
        /* ServerHttpBoundProtocolGenerator.kt:468 */
   77    106   
        match error {
         107  +
            /* ServerHttpBoundProtocolGenerator.kt:476 */
   78    108   
            crate::error::GetBucketLocationError::ValidationException(output) => {
         109  +
                /* ServerHttpBoundProtocolGenerator.kt:477 */
   79    110   
                let payload = crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(output)?;
         111  +
                /* RustType.kt:516 */
   80    112   
                #[allow(unused_mut)]
         113  +
                /* ServerHttpBoundProtocolGenerator.kt:487 */
   81    114   
                let mut builder = ::http::Response::builder();
         115  +
                /* ServerHttpBoundProtocolGenerator.kt:597 */
   82    116   
                builder = ::aws_smithy_http::header::set_response_header_if_absent(
   83    117   
                    builder,
   84    118   
                    ::http::header::CONTENT_TYPE,
   85    119   
                    "application/xml",
   86    120   
                );
         121  +
                /* ServerHttpBoundProtocolGenerator.kt:663 */
   87    122   
                let content_length = payload.len();
   88    123   
                builder = ::aws_smithy_http::header::set_response_header_if_absent(
   89    124   
                    builder,
   90    125   
                    ::http::header::CONTENT_LENGTH,
   91    126   
                    content_length,
   92    127   
                );
         128  +
                /* ServerHttpBoundProtocolGenerator.kt:504 */
   93    129   
                builder
   94    130   
                    .status(400)
   95    131   
                    .body(::aws_smithy_http_server::body::to_boxed(payload))?
         132  +
                /* ServerHttpBoundProtocolGenerator.kt:476 */
         133  +
            } /* ServerHttpBoundProtocolGenerator.kt:468 */
   96    134   
        }
   97         -
        }
         135  +
        /* ServerHttpBoundProtocolGenerator.kt:452 */
   98    136   
    })
         137  +
    /* ServerHttpBoundProtocolGenerator.kt:447 */
   99    138   
}
  100    139   
         140  +
/* XmlBindingTraitSerializerGenerator.kt:217 */
  101    141   
pub fn ser_get_bucket_location_output(
  102    142   
    output: &crate::output::GetBucketLocationOutput,
  103    143   
) -> ::std::result::Result<String, ::aws_smithy_types::error::operation::SerializationError> {
         144  +
    /* XmlBindingTraitSerializerGenerator.kt:221 */
  104    145   
    let mut out = String::new();
         146  +
    /* XmlBindingTraitSerializerGenerator.kt:225 */
  105    147   
    {
         148  +
        /* XmlBindingTraitSerializerGenerator.kt:226 */
  106    149   
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
  107    150   
        #[allow(unused_mut)]
  108    151   
        let mut root = writer
  109    152   
            .start_el("LocationConstraint")
  110    153   
            .write_ns("http://s3.amazonaws.com/doc/2006-03-01/", None);
         154  +
        /* XmlBindingTraitSerializerGenerator.kt:440 */
  111    155   
        crate::protocol_serde::shape_get_bucket_location_output::ser_get_bucket_location_output_output(output, root)?
         156  +
        /* XmlBindingTraitSerializerGenerator.kt:225 */
  112    157   
    }
         158  +
    /* XmlBindingTraitSerializerGenerator.kt:238 */
  113    159   
    Ok(out)
         160  +
    /* XmlBindingTraitSerializerGenerator.kt:217 */
  114    161   
}