Server Test

Server Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943

Files changed:

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

@@ -1,1 +31,32 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
    2      3   
static CONTENT_TYPE_SINGLEMEMBERSTRUCTOPERATION: std::sync::LazyLock<::mime::Mime> =
    3      4   
    std::sync::LazyLock::new(|| {
    4      5   
        "application/cbor"
    5      6   
            .parse::<::mime::Mime>()
    6      7   
            .expect("BUG: MIME parsing failed, content_type is not valid")
    7      8   
    });
    8      9   
::pin_project_lite::pin_project! {
    9     10   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
   10     11   
    /// [`SingleMemberStructOperationInput`](crate::input::SingleMemberStructOperationInput) using modelled bindings.
   11     12   
    pub struct SingleMemberStructOperationInputFuture {
@@ -43,44 +175,183 @@
   63     64   
                ::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(
   64     65   
                    e,
   65     66   
                )
   66     67   
            },
   67     68   
        );
   68     69   
        SingleMemberStructOperationInputFuture {
   69     70   
            inner: Box::pin(fut),
   70     71   
        }
   71     72   
    }
   72     73   
}
          74  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
   73     75   
impl
   74     76   
    ::aws_smithy_http_server::response::IntoResponse<
   75     77   
        ::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor,
   76     78   
    > for crate::output::SingleMemberStructOperationOutput
   77     79   
{
   78     80   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
   79     81   
        match crate::protocol_serde::shape_single_member_struct_operation::ser_single_member_struct_operation_http_response(self) {
   80     82   
                        Ok(response) => response,
   81     83   
                        Err(e) => {
   82     84   
                            ::tracing::error!(error = %e, "failed to serialize response");
   83     85   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor>::into_response(::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(e))
   84     86   
                        }
   85     87   
                    }
   86     88   
    }
   87     89   
}
   88     90   
          91  +
/* RustType.kt:516 */
   89     92   
#[allow(unreachable_code, unused_variables)]
          93  +
/* RustType.kt:516 */
   90     94   
#[cfg(test)]
          95  +
/* ProtocolTestGenerator.kt:98 */
   91     96   
mod single_member_struct_operation_test {
   92     97   
   93     98   
    /// When additional tokens are found past where we expect the end of the body,
   94     99   
    /// the request should be rejected with a serialization exception.
   95    100   
    /// Test ID: AdditionalTokensSingleMemberStruct
   96    101   
    #[::tokio::test]
   97    102   
    #[::tracing_test::traced_test]
   98    103   
    async fn additional_tokens_single_member_struct_malformed_request() {
   99    104   
        {
  100    105   
            #[allow(unused_mut)]
  101    106   
            let mut http_request = http::Request::builder()
  102    107   
                .uri("/service/RpcV2CborService/operation/SingleMemberStructOperation")
  103    108   
                .method("POST")
  104    109   
                .header("smithy-protocol", "rpc-v2-cbor")
  105    110   
                .header("Accept", "application/cbor")
  106    111   
                .header("Content-Type", "application/cbor")
  107    112   
                .body(::aws_smithy_http_server::body::Body::from(
  108    113   
                    ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
  109    114   
                        "v/+//w==".as_bytes(),
  110    115   
                        ::aws_smithy_protocol_test::MediaType::from("unknown"),
  111    116   
                    )),
  112    117   
                ))
  113    118   
                .unwrap();
  114    119   
            #[allow(unused_mut)]
  115    120   
            let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
  116    121   
            let config = crate::service::RpcV2CborServiceConfig::builder().build();
  117    122   
            let service = crate::service::RpcV2CborService::builder::<::hyper::body::Body, _, _, _>(config)
  118    123   
                            .single_member_struct_operation(move |input: crate::input::SingleMemberStructOperationInput| {
  119    124   
                                let sender = sender.clone();
  120    125   
                                async move {
  121    126   
                                    let result = { panic!("request should have been rejected, but we accepted it; we parsed operation input `{:?}`", &input) as crate::output::SingleMemberStructOperationOutput };
  122    127   
                                    sender.send(()).await.expect("receiver dropped early");
  123    128   
                                    result
  124    129   
                                }
  125    130   
                            })
  126    131   
                            .build_unchecked();
  127    132   
            let http_response = ::tower::ServiceExt::oneshot(service, http_request)
  128    133   
                .await
  129    134   
                .expect("unable to make an HTTP request");
  130    135   
            ::pretty_assertions::assert_eq!(
  131    136   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
  132    137   
                http_response.status()
  133    138   
            );
  134    139   
            let body = ::hyper::body::to_bytes(http_response.into_body())
  135    140   
                .await
  136    141   
                .expect("unable to extract body to bytes");
  137    142   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  138    143   
                &body,
  139    144   
                "oA==",
  140    145   
                ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  141    146   
            ));
  142    147   
        }
  143    148   
    }
         149  +
         150  +
    /* ProtocolTestGenerator.kt:98 */
  144    151   
}
  145    152   
         153  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  146    154   
static CONTENT_TYPE_EMPTYSTRUCTOPERATION: std::sync::LazyLock<::mime::Mime> =
  147    155   
    std::sync::LazyLock::new(|| {
  148    156   
        "application/cbor"
  149    157   
            .parse::<::mime::Mime>()
  150    158   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  151    159   
    });
  152    160   
::pin_project_lite::pin_project! {
  153    161   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  154    162   
    /// [`EmptyStructOperationInput`](crate::input::EmptyStructOperationInput) using modelled bindings.
  155    163   
    pub struct EmptyStructOperationInputFuture {
@@ -187,195 +320,335 @@
  207    215   
                ::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(
  208    216   
                    e,
  209    217   
                )
  210    218   
            },
  211    219   
        );
  212    220   
        EmptyStructOperationInputFuture {
  213    221   
            inner: Box::pin(fut),
  214    222   
        }
  215    223   
    }
  216    224   
}
         225  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  217    226   
impl
  218    227   
    ::aws_smithy_http_server::response::IntoResponse<
  219    228   
        ::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor,
  220    229   
    > for crate::output::EmptyStructOperationOutput
  221    230   
{
  222    231   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  223    232   
        match crate::protocol_serde::shape_empty_struct_operation::ser_empty_struct_operation_http_response(self) {
  224    233   
                        Ok(response) => response,
  225    234   
                        Err(e) => {
  226    235   
                            ::tracing::error!(error = %e, "failed to serialize response");
  227    236   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor>::into_response(::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(e))
  228    237   
                        }
  229    238   
                    }
  230    239   
    }
  231    240   
}
  232    241   
         242  +
/* RustType.kt:516 */
  233    243   
#[allow(unreachable_code, unused_variables)]
         244  +
/* RustType.kt:516 */
  234    245   
#[cfg(test)]
         246  +
/* ProtocolTestGenerator.kt:98 */
  235    247   
mod empty_struct_operation_test {
  236    248   
  237    249   
    /// When additional tokens are found past where we expect the end of the body,
  238    250   
    /// the request should be rejected with a serialization exception.
  239    251   
    /// Test ID: AdditionalTokensEmptyStruct
  240    252   
    #[::tokio::test]
  241    253   
    #[::tracing_test::traced_test]
  242    254   
    #[should_panic]
  243    255   
    async fn additional_tokens_empty_struct_malformed_request() {
  244    256   
        {
  245    257   
            #[allow(unused_mut)]
  246    258   
            let mut http_request = http::Request::builder()
  247    259   
                .uri("/service/RpcV2CborService/operation/EmptyStructOperation")
  248    260   
                .method("POST")
  249    261   
                .header("smithy-protocol", "rpc-v2-cbor")
  250    262   
                .header("Accept", "application/cbor")
  251    263   
                .header("Content-Type", "application/cbor")
  252    264   
                .body(::aws_smithy_http_server::body::Body::from(
  253    265   
                    ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
  254    266   
                        "v/+//w==".as_bytes(),
  255    267   
                        ::aws_smithy_protocol_test::MediaType::from("unknown"),
  256    268   
                    )),
  257    269   
                ))
  258    270   
                .unwrap();
  259    271   
            #[allow(unused_mut)]
  260    272   
            let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
  261    273   
            let config = crate::service::RpcV2CborServiceConfig::builder().build();
  262    274   
            let service = crate::service::RpcV2CborService::builder::<::hyper::body::Body, _, _, _>(config)
  263    275   
                            .empty_struct_operation(move |input: crate::input::EmptyStructOperationInput| {
  264    276   
                                let sender = sender.clone();
  265    277   
                                async move {
  266    278   
                                    let result = { panic!("request should have been rejected, but we accepted it; we parsed operation input `{:?}`", &input) as crate::output::EmptyStructOperationOutput };
  267    279   
                                    sender.send(()).await.expect("receiver dropped early");
  268    280   
                                    result
  269    281   
                                }
  270    282   
                            })
  271    283   
                            .build_unchecked();
  272    284   
            let http_response = ::tower::ServiceExt::oneshot(service, http_request)
  273    285   
                .await
  274    286   
                .expect("unable to make an HTTP request");
  275    287   
            ::pretty_assertions::assert_eq!(
  276    288   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
  277    289   
                http_response.status()
  278    290   
            );
  279    291   
            let body = ::hyper::body::to_bytes(http_response.into_body())
  280    292   
                .await
  281    293   
                .expect("unable to extract body to bytes");
  282    294   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  283    295   
                &body,
  284    296   
                "oA==",
  285    297   
                ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  286    298   
            ));
  287    299   
        }
  288    300   
    }
         301  +
         302  +
    /* ProtocolTestGenerator.kt:98 */
  289    303   
}
  290    304   
         305  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  291    306   
static CONTENT_TYPE_COMPLEXSTRUCTOPERATION: std::sync::LazyLock<::mime::Mime> =
  292    307   
    std::sync::LazyLock::new(|| {
  293    308   
        "application/cbor"
  294    309   
            .parse::<::mime::Mime>()
  295    310   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  296    311   
    });
  297    312   
::pin_project_lite::pin_project! {
  298    313   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  299    314   
    /// [`ComplexStructOperationInput`](crate::input::ComplexStructOperationInput) using modelled bindings.
  300    315   
    pub struct ComplexStructOperationInputFuture {
@@ -332,347 +425,443 @@
  352    367   
                ::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(
  353    368   
                    e,
  354    369   
                )
  355    370   
            },
  356    371   
        );
  357    372   
        ComplexStructOperationInputFuture {
  358    373   
            inner: Box::pin(fut),
  359    374   
        }
  360    375   
    }
  361    376   
}
         377  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  362    378   
impl
  363    379   
    ::aws_smithy_http_server::response::IntoResponse<
  364    380   
        ::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor,
  365    381   
    > for crate::output::ComplexStructOperationOutput
  366    382   
{
  367    383   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  368    384   
        match crate::protocol_serde::shape_complex_struct_operation::ser_complex_struct_operation_http_response(self) {
  369    385   
                        Ok(response) => response,
  370    386   
                        Err(e) => {
  371    387   
                            ::tracing::error!(error = %e, "failed to serialize response");
  372    388   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor>::into_response(::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(e))
  373    389   
                        }
  374    390   
                    }
  375    391   
    }
  376    392   
}
         393  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  377    394   
impl
  378    395   
    ::aws_smithy_http_server::response::IntoResponse<
  379    396   
        ::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor,
  380    397   
    > for crate::error::ComplexStructOperationError
  381    398   
{
  382    399   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  383    400   
        match crate::protocol_serde::shape_complex_struct_operation::ser_complex_struct_operation_http_error(&self) {
  384    401   
            Ok(mut response) => {
  385    402   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
  386    403   
                response
  387    404   
            },
  388    405   
            Err(e) => {
  389    406   
                ::tracing::error!(error = %e, "failed to serialize response");
  390    407   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor>::into_response(::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(e))
  391    408   
            }
  392    409   
        }
  393    410   
    }
  394    411   
}
  395    412   
         413  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  396    414   
static CONTENT_TYPE_ERRORSERIALIZATIONOPERATION: std::sync::LazyLock<::mime::Mime> =
  397    415   
    std::sync::LazyLock::new(|| {
  398    416   
        "application/cbor"
  399    417   
            .parse::<::mime::Mime>()
  400    418   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  401    419   
    });
  402    420   
::pin_project_lite::pin_project! {
  403    421   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  404    422   
    /// [`ErrorSerializationOperationInput`](crate::input::ErrorSerializationOperationInput) using modelled bindings.
  405    423   
    pub struct ErrorSerializationOperationInputFuture {
@@ -437,455 +532,555 @@
  457    475   
                ::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(
  458    476   
                    e,
  459    477   
                )
  460    478   
            },
  461    479   
        );
  462    480   
        ErrorSerializationOperationInputFuture {
  463    481   
            inner: Box::pin(fut),
  464    482   
        }
  465    483   
    }
  466    484   
}
         485  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  467    486   
impl
  468    487   
    ::aws_smithy_http_server::response::IntoResponse<
  469    488   
        ::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor,
  470    489   
    > for crate::output::ErrorSerializationOperationOutput
  471    490   
{
  472    491   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  473    492   
        match crate::protocol_serde::shape_error_serialization_operation::ser_error_serialization_operation_http_response(self) {
  474    493   
                        Ok(response) => response,
  475    494   
                        Err(e) => {
  476    495   
                            ::tracing::error!(error = %e, "failed to serialize response");
  477    496   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor>::into_response(::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(e))
  478    497   
                        }
  479    498   
                    }
  480    499   
    }
  481    500   
}
         501  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  482    502   
impl
  483    503   
    ::aws_smithy_http_server::response::IntoResponse<
  484    504   
        ::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor,
  485    505   
    > for crate::error::ErrorSerializationOperationError
  486    506   
{
  487    507   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  488    508   
        match crate::protocol_serde::shape_error_serialization_operation::ser_error_serialization_operation_http_error(&self) {
  489    509   
            Ok(mut response) => {
  490    510   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
  491    511   
                response
  492    512   
            },
  493    513   
            Err(e) => {
  494    514   
                ::tracing::error!(error = %e, "failed to serialize response");
  495    515   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor>::into_response(::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(e))
  496    516   
            }
  497    517   
        }
  498    518   
    }
  499    519   
}
  500    520   
         521  +
/* RustType.kt:516 */
  501    522   
#[allow(unreachable_code, unused_variables)]
         523  +
/* RustType.kt:516 */
  502    524   
#[cfg(test)]
         525  +
/* ProtocolTestGenerator.kt:98 */
  503    526   
mod error_serialization_operation_test {
  504    527   
  505    528   
    /// Despite the operation output being a structure shape with the `@error` trait,
  506    529   
    /// `__type` field should, in a strict interpretation of the spec, not be included,
  507    530   
    /// because we're not serializing a server error response. However, we do, because
  508    531   
    /// there shouldn't™️ be any harm in doing so, and it greatly simplifies the
  509    532   
    /// code generator. This test just pins this behavior in case we ever modify it.
  510    533   
    /// Test ID: OperationOutputSerializationQuestionablyIncludesTypeField
  511    534   
    #[::tokio::test]
  512    535   
    #[::tracing_test::traced_test]
@@ -553,576 +614,640 @@
  573    596   
                http_response.status()
  574    597   
            );
  575    598   
            let body = ::hyper::body::to_bytes(http_response.into_body())
  576    599   
                .await
  577    600   
                .expect("unable to extract body to bytes");
  578    601   
            ::aws_smithy_protocol_test::assert_ok(
  579    602   
            ::aws_smithy_protocol_test::validate_body(&body, "v2ZfX3R5cGV4JHNtaXRoeS5mcmFtZXdvcmsjVmFsaWRhdGlvbkV4Y2VwdGlvbmdtZXNzYWdleGsxIHZhbGlkYXRpb24gZXJyb3IgZGV0ZWN0ZWQuIFZhbHVlIGF0ICcvcmVxdWlyZWRCbG9iJyBmYWlsZWQgdG8gc2F0aXNmeSBjb25zdHJhaW50OiBNZW1iZXIgbXVzdCBub3QgYmUgbnVsbGlmaWVsZExpc3SBv2RwYXRobS9yZXF1aXJlZEJsb2JnbWVzc2FnZXhOVmFsdWUgYXQgJy9yZXF1aXJlZEJsb2InIGZhaWxlZCB0byBzYXRpc2Z5IGNvbnN0cmFpbnQ6IE1lbWJlciBtdXN0IG5vdCBiZSBudWxs//8=", ::aws_smithy_protocol_test::MediaType::from("application/cbor"))
  580    603   
            );
  581    604   
        }
  582    605   
    }
         606  +
         607  +
    /* ProtocolTestGenerator.kt:98 */
  583    608   
}
  584    609   
         610  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  585    611   
static CONTENT_TYPE_SIMPLESTRUCTOPERATION: std::sync::LazyLock<::mime::Mime> =
  586    612   
    std::sync::LazyLock::new(|| {
  587    613   
        "application/cbor"
  588    614   
            .parse::<::mime::Mime>()
  589    615   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  590    616   
    });
  591    617   
::pin_project_lite::pin_project! {
  592    618   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  593    619   
    /// [`SimpleStructOperationInput`](crate::input::SimpleStructOperationInput) using modelled bindings.
  594    620   
    pub struct SimpleStructOperationInputFuture {
@@ -626,652 +721,752 @@
  646    672   
                ::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(
  647    673   
                    e,
  648    674   
                )
  649    675   
            },
  650    676   
        );
  651    677   
        SimpleStructOperationInputFuture {
  652    678   
            inner: Box::pin(fut),
  653    679   
        }
  654    680   
    }
  655    681   
}
         682  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  656    683   
impl
  657    684   
    ::aws_smithy_http_server::response::IntoResponse<
  658    685   
        ::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor,
  659    686   
    > for crate::output::SimpleStructOperationOutput
  660    687   
{
  661    688   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  662    689   
        match crate::protocol_serde::shape_simple_struct_operation::ser_simple_struct_operation_http_response(self) {
  663    690   
                        Ok(response) => response,
  664    691   
                        Err(e) => {
  665    692   
                            ::tracing::error!(error = %e, "failed to serialize response");
  666    693   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor>::into_response(::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(e))
  667    694   
                        }
  668    695   
                    }
  669    696   
    }
  670    697   
}
         698  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  671    699   
impl
  672    700   
    ::aws_smithy_http_server::response::IntoResponse<
  673    701   
        ::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor,
  674    702   
    > for crate::error::SimpleStructOperationError
  675    703   
{
  676    704   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  677    705   
        match crate::protocol_serde::shape_simple_struct_operation::ser_simple_struct_operation_http_error(&self) {
  678    706   
            Ok(mut response) => {
  679    707   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
  680    708   
                response
  681    709   
            },
  682    710   
            Err(e) => {
  683    711   
                ::tracing::error!(error = %e, "failed to serialize response");
  684    712   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rpc_v2_cbor::RpcV2Cbor>::into_response(::aws_smithy_http_server::protocol::rpc_v2_cbor::runtime_error::RuntimeError::from(e))
  685    713   
            }
  686    714   
        }
  687    715   
    }
  688    716   
}
  689    717   
         718  +
/* RustType.kt:516 */
  690    719   
#[allow(unreachable_code, unused_variables)]
         720  +
/* RustType.kt:516 */
  691    721   
#[cfg(test)]
         722  +
/* ProtocolTestGenerator.kt:98 */
  692    723   
mod simple_struct_operation_test {
  693    724   
  694    725   
    /// Test ID: SimpleStruct
  695    726   
    #[::tokio::test]
  696    727   
    #[::tracing_test::traced_test]
  697    728   
    async fn simple_struct_response() {
  698    729   
        let output =crate::output::SimpleStructOperationOutput {
  699    730   
            blob:
  700    731   
                ::std::option::Option::Some(
  701    732   
                    ::aws_smithy_types::Blob::new("blobby blob")
@@ -874,905 +904,937 @@
  894    925   
            http_response.headers(),
  895    926   
            expected_headers,
  896    927   
        ));
  897    928   
        let body = ::hyper::body::to_bytes(http_response.into_body())
  898    929   
            .await
  899    930   
            .expect("unable to extract body to bytes");
  900    931   
        ::aws_smithy_protocol_test::assert_ok(
  901    932   
        ::aws_smithy_protocol_test::validate_body(&body, "v2xyZXF1aXJlZEJsb2JLYmxvYmJ5IGJsb2JvcmVxdWlyZWRCb29sZWFu9G5yZXF1aXJlZFN0cmluZ3hwVGhlcmUgYXJlIHRocmVlIHRoaW5ncyBhbGwgd2lzZSBtZW4gZmVhcjogdGhlIHNlYSBpbiBzdG9ybSwgYSBuaWdodCB3aXRoIG5vIG1vb24sIGFuZCB0aGUgYW5nZXIgb2YgYSBnZW50bGUgbWFuLmxyZXF1aXJlZEJ5dGUYRW1yZXF1aXJlZFNob3J0GEZvcmVxdWlyZWRJbnRlZ2VyGEdscmVxdWlyZWRMb25nGEhtcmVxdWlyZWRGbG9hdPo/MKPXbnJlcXVpcmVkRG91Ymxl+z/mTQE6kqMFcXJlcXVpcmVkVGltZXN0YW1wwftB1wqrYAAAAGxyZXF1aXJlZEVudW1nRElBTU9ORP8=", ::aws_smithy_protocol_test::MediaType::from("application/cbor"))
  902    933   
        );
  903    934   
    }
         935  +
         936  +
    /* ProtocolTestGenerator.kt:98 */
  904    937   
}

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

@@ -1,1 +0,166 @@
    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 SingleMemberStructOperation;
    4      6   
    5      7   
impl ::aws_smithy_http_server::operation::OperationShape for SingleMemberStructOperation {
    6      8   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
    7      9   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
    8     10   
            "smithy.protocoltests.rpcv2Cbor#SingleMemberStructOperation",
    9     11   
            "smithy.protocoltests.rpcv2Cbor",
   10     12   
            "SingleMemberStructOperation",
   11     13   
        );
   12     14   
   13     15   
    type Input = crate::input::SingleMemberStructOperationInput;
   14     16   
    type Output = crate::output::SingleMemberStructOperationOutput;
   15     17   
    type Error = std::convert::Infallible;
   16     18   
}
   17     19   
   18     20   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
   19     21   
    for SingleMemberStructOperation
   20     22   
{
   21     23   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
   22     24   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
   23     25   
   24     26   
    fn request_fmt() -> Self::RequestFmt {
   25     27   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
   26     28   
    }
   27     29   
   28     30   
    fn response_fmt() -> Self::ResponseFmt {
   29     31   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   30     32   
    }
   31     33   
}
          34  +
/* ServerOperationGenerator.kt:88 */
   32     35   
          36  +
/* ServerOperationGenerator.kt:48 */
   33     37   
#[allow(missing_docs)] // documentation missing in model
          38  +
                       /* ServerOperationGenerator.kt:55 */
   34     39   
pub struct EmptyStructOperation;
   35     40   
   36     41   
impl ::aws_smithy_http_server::operation::OperationShape for EmptyStructOperation {
   37     42   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
   38     43   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
   39     44   
            "smithy.protocoltests.rpcv2Cbor#EmptyStructOperation",
   40     45   
            "smithy.protocoltests.rpcv2Cbor",
   41     46   
            "EmptyStructOperation",
   42     47   
        );
   43     48   
   44     49   
    type Input = crate::input::EmptyStructOperationInput;
   45     50   
    type Output = crate::output::EmptyStructOperationOutput;
   46     51   
    type Error = std::convert::Infallible;
   47     52   
}
   48     53   
   49     54   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for EmptyStructOperation {
   50     55   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
   51     56   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
   52     57   
   53     58   
    fn request_fmt() -> Self::RequestFmt {
   54     59   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
   55     60   
    }
   56     61   
   57     62   
    fn response_fmt() -> Self::ResponseFmt {
   58     63   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   59     64   
    }
   60     65   
}
          66  +
/* ServerOperationGenerator.kt:88 */
   61     67   
          68  +
/* ServerOperationGenerator.kt:48 */
   62     69   
#[allow(missing_docs)] // documentation missing in model
          70  +
                       /* ServerOperationGenerator.kt:55 */
   63     71   
pub struct ComplexStructOperation;
   64     72   
   65     73   
impl ::aws_smithy_http_server::operation::OperationShape for ComplexStructOperation {
   66     74   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
   67     75   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
   68     76   
            "smithy.protocoltests.rpcv2Cbor#ComplexStructOperation",
   69     77   
            "smithy.protocoltests.rpcv2Cbor",
   70     78   
            "ComplexStructOperation",
   71     79   
        );
   72     80   
   73     81   
    type Input = crate::input::ComplexStructOperationInput;
   74     82   
    type Output = crate::output::ComplexStructOperationOutput;
   75     83   
    type Error = crate::error::ComplexStructOperationError;
   76     84   
}
   77     85   
   78     86   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
   79     87   
    for ComplexStructOperation
   80     88   
{
   81     89   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
   82     90   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
   83     91   
   84     92   
    fn request_fmt() -> Self::RequestFmt {
   85     93   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
   86     94   
    }
   87     95   
   88     96   
    fn response_fmt() -> Self::ResponseFmt {
   89     97   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   90     98   
    }
   91     99   
}
         100  +
/* ServerOperationGenerator.kt:88 */
   92    101   
         102  +
/* ServerOperationGenerator.kt:48 */
   93    103   
#[allow(missing_docs)] // documentation missing in model
         104  +
                       /* ServerOperationGenerator.kt:55 */
   94    105   
pub struct ErrorSerializationOperation;
   95    106   
   96    107   
impl ::aws_smithy_http_server::operation::OperationShape for ErrorSerializationOperation {
   97    108   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
   98    109   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
   99    110   
            "smithy.protocoltests.rpcv2Cbor#ErrorSerializationOperation",
  100    111   
            "smithy.protocoltests.rpcv2Cbor",
  101    112   
            "ErrorSerializationOperation",
  102    113   
        );
  103    114   
  104    115   
    type Input = crate::input::ErrorSerializationOperationInput;
  105    116   
    type Output = crate::output::ErrorSerializationOperationOutput;
  106    117   
    type Error = crate::error::ErrorSerializationOperationError;
  107    118   
}
  108    119   
  109    120   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  110    121   
    for ErrorSerializationOperation
  111    122   
{
  112    123   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  113    124   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  114    125   
  115    126   
    fn request_fmt() -> Self::RequestFmt {
  116    127   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  117    128   
    }
  118    129   
  119    130   
    fn response_fmt() -> Self::ResponseFmt {
  120    131   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  121    132   
    }
  122    133   
}
         134  +
/* ServerOperationGenerator.kt:88 */
  123    135   
         136  +
/* ServerOperationGenerator.kt:48 */
  124    137   
#[allow(missing_docs)] // documentation missing in model
         138  +
                       /* ServerOperationGenerator.kt:55 */
  125    139   
pub struct SimpleStructOperation;
  126    140   
  127    141   
impl ::aws_smithy_http_server::operation::OperationShape for SimpleStructOperation {
  128    142   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  129    143   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  130    144   
            "smithy.protocoltests.rpcv2Cbor#SimpleStructOperation",
  131    145   
            "smithy.protocoltests.rpcv2Cbor",
  132    146   
            "SimpleStructOperation",
  133    147   
        );
  134    148   
  135    149   
    type Input = crate::input::SimpleStructOperationInput;
  136    150   
    type Output = crate::output::SimpleStructOperationOutput;
  137    151   
    type Error = crate::error::SimpleStructOperationError;
  138    152   
}
  139    153   
  140    154   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for SimpleStructOperation {
  141    155   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  142    156   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  143    157   
  144    158   
    fn request_fmt() -> Self::RequestFmt {
  145    159   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  146    160   
    }
  147    161   
  148    162   
    fn response_fmt() -> Self::ResponseFmt {
  149    163   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  150    164   
    }
  151    165   
}
         166  +
/* ServerOperationGenerator.kt:88 */

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

@@ -1,1 +795,1420 @@
    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 SingleMemberStructOperationOutput {
           8  +
pub /* StructureGenerator.kt:201 */ struct SingleMemberStructOperationOutput {
           9  +
    /* StructureGenerator.kt:231 */
    7     10   
    #[allow(missing_docs)] // documentation missing in model
    8     11   
    pub message: ::std::option::Option<::std::string::String>,
          12  +
    /* StructureGenerator.kt:201 */
    9     13   
}
          14  +
/* StructureGenerator.kt:135 */
   10     15   
impl SingleMemberStructOperationOutput {
          16  +
    /* StructureGenerator.kt:231 */
   11     17   
    #[allow(missing_docs)] // documentation missing in model
          18  +
                           /* StructureGenerator.kt:166 */
   12     19   
    pub fn message(&self) -> ::std::option::Option<&str> {
          20  +
        /* StructureGenerator.kt:169 */
   13     21   
        self.message.as_deref()
          22  +
        /* StructureGenerator.kt:166 */
   14     23   
    }
          24  +
    /* StructureGenerator.kt:135 */
   15     25   
}
          26  +
/* ServerCodegenVisitor.kt:345 */
   16     27   
impl SingleMemberStructOperationOutput {
   17         -
    /// Creates a new builder-style object to manufacture [`SingleMemberStructOperationOutput`](crate::output::SingleMemberStructOperationOutput).
          28  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`SingleMemberStructOperationOutput`](crate::output::SingleMemberStructOperationOutput).
          29  +
    /* ServerBuilderGenerator.kt:295 */
   18     30   
    pub fn builder() -> crate::output::single_member_struct_operation_output::Builder {
          31  +
        /* ServerBuilderGenerator.kt:296 */
   19     32   
        crate::output::single_member_struct_operation_output::Builder::default()
          33  +
        /* ServerBuilderGenerator.kt:295 */
   20     34   
    }
          35  +
    /* ServerCodegenVisitor.kt:345 */
   21     36   
}
   22     37   
          38  +
/* StructureGenerator.kt:197 */
   23     39   
#[allow(missing_docs)] // documentation missing in model
          40  +
/* RustType.kt:516 */
   24     41   
#[derive(
   25     42   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   26     43   
)]
   27         -
pub struct EmptyStructOperationOutput {}
          44  +
pub /* StructureGenerator.kt:201 */ struct EmptyStructOperationOutput {/* StructureGenerator.kt:201 */}
          45  +
/* ServerCodegenVisitor.kt:345 */
   28     46   
impl EmptyStructOperationOutput {
   29         -
    /// Creates a new builder-style object to manufacture [`EmptyStructOperationOutput`](crate::output::EmptyStructOperationOutput).
          47  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`EmptyStructOperationOutput`](crate::output::EmptyStructOperationOutput).
          48  +
    /* ServerBuilderGenerator.kt:295 */
   30     49   
    pub fn builder() -> crate::output::empty_struct_operation_output::Builder {
          50  +
        /* ServerBuilderGenerator.kt:296 */
   31     51   
        crate::output::empty_struct_operation_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(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
   37         -
pub struct ComplexStructOperationOutput {
          61  +
pub /* StructureGenerator.kt:201 */ struct ComplexStructOperationOutput {
          62  +
    /* StructureGenerator.kt:231 */
   38     63   
    #[allow(missing_docs)] // documentation missing in model
   39     64   
    pub structure: ::std::option::Option<crate::model::SimpleStruct>,
          65  +
    /* StructureGenerator.kt:231 */
   40     66   
    #[allow(missing_docs)] // documentation missing in model
   41     67   
    pub empty_structure: ::std::option::Option<crate::model::EmptyStruct>,
          68  +
    /* StructureGenerator.kt:231 */
   42     69   
    #[allow(missing_docs)] // documentation missing in model
   43     70   
    pub list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
          71  +
    /* StructureGenerator.kt:231 */
   44     72   
    #[allow(missing_docs)] // documentation missing in model
   45     73   
    pub map: ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
          74  +
    /* StructureGenerator.kt:231 */
   46     75   
    #[allow(missing_docs)] // documentation missing in model
   47     76   
    pub union: ::std::option::Option<crate::model::SimpleUnion>,
          77  +
    /* StructureGenerator.kt:231 */
   48     78   
    #[allow(missing_docs)] // documentation missing in model
   49     79   
    pub unit_union: ::std::option::Option<crate::model::UnitUnion>,
          80  +
    /* StructureGenerator.kt:231 */
   50     81   
    #[allow(missing_docs)] // documentation missing in model
   51     82   
    pub structure_list: ::std::option::Option<::std::vec::Vec<crate::model::SimpleStruct>>,
          83  +
    /* StructureGenerator.kt:231 */
   52     84   
    #[allow(missing_docs)] // documentation missing in model
   53     85   
    pub complex_list: ::std::vec::Vec<
   54     86   
        ::std::collections::HashMap<::std::string::String, crate::model::ComplexUnion>,
   55     87   
    >,
          88  +
    /* StructureGenerator.kt:231 */
   56     89   
    #[allow(missing_docs)] // documentation missing in model
   57     90   
    pub complex_map: ::std::collections::HashMap<::std::string::String, crate::model::ComplexUnion>,
          91  +
    /* StructureGenerator.kt:231 */
   58     92   
    #[allow(missing_docs)] // documentation missing in model
   59     93   
    pub complex_union: ::std::boxed::Box<crate::model::ComplexUnion>,
          94  +
    /* StructureGenerator.kt:201 */
   60     95   
}
          96  +
/* StructureGenerator.kt:135 */
   61     97   
impl ComplexStructOperationOutput {
          98  +
    /* StructureGenerator.kt:231 */
   62     99   
    #[allow(missing_docs)] // documentation missing in model
         100  +
                           /* StructureGenerator.kt:166 */
   63    101   
    pub fn structure(&self) -> ::std::option::Option<&crate::model::SimpleStruct> {
         102  +
        /* StructureGenerator.kt:170 */
   64    103   
        self.structure.as_ref()
         104  +
        /* StructureGenerator.kt:166 */
   65    105   
    }
         106  +
    /* StructureGenerator.kt:231 */
   66    107   
    #[allow(missing_docs)] // documentation missing in model
         108  +
                           /* StructureGenerator.kt:166 */
   67    109   
    pub fn empty_structure(&self) -> ::std::option::Option<&crate::model::EmptyStruct> {
         110  +
        /* StructureGenerator.kt:170 */
   68    111   
        self.empty_structure.as_ref()
         112  +
        /* StructureGenerator.kt:166 */
   69    113   
    }
         114  +
    /* StructureGenerator.kt:231 */
   70    115   
    #[allow(missing_docs)] // documentation missing in model
         116  +
                           /* StructureGenerator.kt:166 */
   71    117   
    pub fn list(&self) -> ::std::option::Option<&[::std::string::String]> {
         118  +
        /* StructureGenerator.kt:169 */
   72    119   
        self.list.as_deref()
         120  +
        /* StructureGenerator.kt:166 */
   73    121   
    }
         122  +
    /* StructureGenerator.kt:231 */
   74    123   
    #[allow(missing_docs)] // documentation missing in model
         124  +
                           /* StructureGenerator.kt:166 */
   75    125   
    pub fn map(
   76    126   
        &self,
   77    127   
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i32>> {
         128  +
        /* StructureGenerator.kt:170 */
   78    129   
        self.map.as_ref()
         130  +
        /* StructureGenerator.kt:166 */
   79    131   
    }
         132  +
    /* StructureGenerator.kt:231 */
   80    133   
    #[allow(missing_docs)] // documentation missing in model
         134  +
                           /* StructureGenerator.kt:166 */
   81    135   
    pub fn union(&self) -> ::std::option::Option<&crate::model::SimpleUnion> {
         136  +
        /* StructureGenerator.kt:170 */
   82    137   
        self.union.as_ref()
         138  +
        /* StructureGenerator.kt:166 */
   83    139   
    }
         140  +
    /* StructureGenerator.kt:231 */
   84    141   
    #[allow(missing_docs)] // documentation missing in model
         142  +
                           /* StructureGenerator.kt:166 */
   85    143   
    pub fn unit_union(&self) -> ::std::option::Option<&crate::model::UnitUnion> {
         144  +
        /* StructureGenerator.kt:170 */
   86    145   
        self.unit_union.as_ref()
         146  +
        /* StructureGenerator.kt:166 */
   87    147   
    }
         148  +
    /* StructureGenerator.kt:231 */
   88    149   
    #[allow(missing_docs)] // documentation missing in model
         150  +
                           /* StructureGenerator.kt:166 */
   89    151   
    pub fn structure_list(&self) -> ::std::option::Option<&[crate::model::SimpleStruct]> {
         152  +
        /* StructureGenerator.kt:169 */
   90    153   
        self.structure_list.as_deref()
         154  +
        /* StructureGenerator.kt:166 */
   91    155   
    }
         156  +
    /* StructureGenerator.kt:231 */
   92    157   
    #[allow(missing_docs)] // documentation missing in model
         158  +
                           /* StructureGenerator.kt:166 */
   93    159   
    pub fn complex_list(
   94    160   
        &self,
   95    161   
    ) -> &[::std::collections::HashMap<::std::string::String, crate::model::ComplexUnion>] {
         162  +
        /* StructureGenerator.kt:171 */
   96    163   
        use std::ops::Deref;
   97    164   
        self.complex_list.deref()
         165  +
        /* StructureGenerator.kt:166 */
   98    166   
    }
         167  +
    /* StructureGenerator.kt:231 */
   99    168   
    #[allow(missing_docs)] // documentation missing in model
         169  +
                           /* StructureGenerator.kt:166 */
  100    170   
    pub fn complex_map(
  101    171   
        &self,
  102    172   
    ) -> &::std::collections::HashMap<::std::string::String, crate::model::ComplexUnion> {
         173  +
        /* StructureGenerator.kt:172 */
  103    174   
        &self.complex_map
         175  +
        /* StructureGenerator.kt:166 */
  104    176   
    }
         177  +
    /* StructureGenerator.kt:231 */
  105    178   
    #[allow(missing_docs)] // documentation missing in model
         179  +
                           /* StructureGenerator.kt:166 */
  106    180   
    pub fn complex_union(&self) -> &crate::model::ComplexUnion {
         181  +
        /* StructureGenerator.kt:171 */
  107    182   
        use std::ops::Deref;
  108    183   
        self.complex_union.deref()
         184  +
        /* StructureGenerator.kt:166 */
  109    185   
    }
         186  +
    /* StructureGenerator.kt:135 */
  110    187   
}
         188  +
/* ServerCodegenVisitor.kt:345 */
  111    189   
impl ComplexStructOperationOutput {
  112         -
    /// Creates a new builder-style object to manufacture [`ComplexStructOperationOutput`](crate::output::ComplexStructOperationOutput).
         190  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`ComplexStructOperationOutput`](crate::output::ComplexStructOperationOutput).
         191  +
    /* ServerBuilderGenerator.kt:295 */
  113    192   
    pub fn builder() -> crate::output::complex_struct_operation_output::Builder {
         193  +
        /* ServerBuilderGenerator.kt:296 */
  114    194   
        crate::output::complex_struct_operation_output::Builder::default()
         195  +
        /* ServerBuilderGenerator.kt:295 */
  115    196   
    }
         197  +
    /* ServerCodegenVisitor.kt:345 */
  116    198   
}
  117    199   
         200  +
/* StructureGenerator.kt:197 */
  118    201   
#[allow(missing_docs)] // documentation missing in model
         202  +
/* RustType.kt:516 */
  119    203   
#[derive(
  120    204   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  121    205   
)]
  122         -
pub struct ErrorSerializationOperationOutput {
  123         -
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
         206  +
pub /* StructureGenerator.kt:201 */ struct ErrorSerializationOperationOutput {
         207  +
    /// /* StructureGenerator.kt:231 */A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
  124    208   
    pub error_shape: ::std::option::Option<crate::error::ValidationException>,
         209  +
    /* StructureGenerator.kt:201 */
  125    210   
}
         211  +
/* StructureGenerator.kt:135 */
  126    212   
impl ErrorSerializationOperationOutput {
  127         -
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
         213  +
    /// /* StructureGenerator.kt:231 */A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
         214  +
    /* StructureGenerator.kt:166 */
  128    215   
    pub fn error_shape(&self) -> ::std::option::Option<&crate::error::ValidationException> {
         216  +
        /* StructureGenerator.kt:170 */
  129    217   
        self.error_shape.as_ref()
         218  +
        /* StructureGenerator.kt:166 */
  130    219   
    }
         220  +
    /* StructureGenerator.kt:135 */
  131    221   
}
         222  +
/* ServerCodegenVisitor.kt:345 */
  132    223   
impl ErrorSerializationOperationOutput {
  133         -
    /// Creates a new builder-style object to manufacture [`ErrorSerializationOperationOutput`](crate::output::ErrorSerializationOperationOutput).
         224  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`ErrorSerializationOperationOutput`](crate::output::ErrorSerializationOperationOutput).
         225  +
    /* ServerBuilderGenerator.kt:295 */
  134    226   
    pub fn builder() -> crate::output::error_serialization_operation_output::Builder {
         227  +
        /* ServerBuilderGenerator.kt:296 */
  135    228   
        crate::output::error_serialization_operation_output::Builder::default()
         229  +
        /* ServerBuilderGenerator.kt:295 */
  136    230   
    }
         231  +
    /* ServerCodegenVisitor.kt:345 */
  137    232   
}
  138    233   
         234  +
/* StructureGenerator.kt:197 */
  139    235   
#[allow(missing_docs)] // documentation missing in model
         236  +
/* RustType.kt:516 */
  140    237   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  141         -
pub struct SimpleStructOperationOutput {
         238  +
pub /* StructureGenerator.kt:201 */ struct SimpleStructOperationOutput {
         239  +
    /* StructureGenerator.kt:231 */
  142    240   
    #[allow(missing_docs)] // documentation missing in model
  143    241   
    pub blob: ::std::option::Option<::aws_smithy_types::Blob>,
         242  +
    /* StructureGenerator.kt:231 */
  144    243   
    #[allow(missing_docs)] // documentation missing in model
  145    244   
    pub boolean: ::std::option::Option<bool>,
         245  +
    /* StructureGenerator.kt:231 */
  146    246   
    #[allow(missing_docs)] // documentation missing in model
  147    247   
    pub string: ::std::option::Option<::std::string::String>,
         248  +
    /* StructureGenerator.kt:231 */
  148    249   
    #[allow(missing_docs)] // documentation missing in model
  149    250   
    pub byte: ::std::option::Option<i8>,
         251  +
    /* StructureGenerator.kt:231 */
  150    252   
    #[allow(missing_docs)] // documentation missing in model
  151    253   
    pub short: ::std::option::Option<i16>,
         254  +
    /* StructureGenerator.kt:231 */
  152    255   
    #[allow(missing_docs)] // documentation missing in model
  153    256   
    pub integer: ::std::option::Option<i32>,
         257  +
    /* StructureGenerator.kt:231 */
  154    258   
    #[allow(missing_docs)] // documentation missing in model
  155    259   
    pub long: ::std::option::Option<i64>,
         260  +
    /* StructureGenerator.kt:231 */
  156    261   
    #[allow(missing_docs)] // documentation missing in model
  157    262   
    pub float: ::std::option::Option<f32>,
         263  +
    /* StructureGenerator.kt:231 */
  158    264   
    #[allow(missing_docs)] // documentation missing in model
  159    265   
    pub double: ::std::option::Option<f64>,
         266  +
    /* StructureGenerator.kt:231 */
  160    267   
    #[allow(missing_docs)] // documentation missing in model
  161    268   
    pub timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
         269  +
    /* StructureGenerator.kt:231 */
  162    270   
    #[allow(missing_docs)] // documentation missing in model
  163    271   
    pub r#enum: ::std::option::Option<crate::model::Suit>,
         272  +
    /* StructureGenerator.kt:231 */
  164    273   
    #[allow(missing_docs)] // documentation missing in model
  165    274   
    pub required_blob: ::aws_smithy_types::Blob,
         275  +
    /* StructureGenerator.kt:231 */
  166    276   
    #[allow(missing_docs)] // documentation missing in model
  167    277   
    pub required_boolean: bool,
         278  +
    /* StructureGenerator.kt:231 */
  168    279   
    #[allow(missing_docs)] // documentation missing in model
  169    280   
    pub required_string: ::std::string::String,
         281  +
    /* StructureGenerator.kt:231 */
  170    282   
    #[allow(missing_docs)] // documentation missing in model
  171    283   
    pub required_byte: i8,
         284  +
    /* StructureGenerator.kt:231 */
  172    285   
    #[allow(missing_docs)] // documentation missing in model
  173    286   
    pub required_short: i16,
         287  +
    /* StructureGenerator.kt:231 */
  174    288   
    #[allow(missing_docs)] // documentation missing in model
  175    289   
    pub required_integer: i32,
         290  +
    /* StructureGenerator.kt:231 */
  176    291   
    #[allow(missing_docs)] // documentation missing in model
  177    292   
    pub required_long: i64,
         293  +
    /* StructureGenerator.kt:231 */
  178    294   
    #[allow(missing_docs)] // documentation missing in model
  179    295   
    pub required_float: f32,
         296  +
    /* StructureGenerator.kt:231 */
  180    297   
    #[allow(missing_docs)] // documentation missing in model
  181    298   
    pub required_double: f64,
         299  +
    /* StructureGenerator.kt:231 */
  182    300   
    #[allow(missing_docs)] // documentation missing in model
  183    301   
    pub required_timestamp: ::aws_smithy_types::DateTime,
         302  +
    /* StructureGenerator.kt:231 */
  184    303   
    #[allow(missing_docs)] // documentation missing in model
  185    304   
    pub required_enum: crate::model::Suit,
         305  +
    /* StructureGenerator.kt:201 */
  186    306   
}
         307  +
/* StructureGenerator.kt:135 */
  187    308   
impl SimpleStructOperationOutput {
         309  +
    /* StructureGenerator.kt:231 */
  188    310   
    #[allow(missing_docs)] // documentation missing in model
         311  +
                           /* StructureGenerator.kt:166 */
  189    312   
    pub fn blob(&self) -> ::std::option::Option<&::aws_smithy_types::Blob> {
         313  +
        /* StructureGenerator.kt:170 */
  190    314   
        self.blob.as_ref()
         315  +
        /* StructureGenerator.kt:166 */
  191    316   
    }
         317  +
    /* StructureGenerator.kt:231 */
  192    318   
    #[allow(missing_docs)] // documentation missing in model
         319  +
                           /* StructureGenerator.kt:166 */
  193    320   
    pub fn boolean(&self) -> ::std::option::Option<bool> {
         321  +
        /* StructureGenerator.kt:168 */
  194    322   
        self.boolean
         323  +
        /* StructureGenerator.kt:166 */
  195    324   
    }
         325  +
    /* StructureGenerator.kt:231 */
  196    326   
    #[allow(missing_docs)] // documentation missing in model
         327  +
                           /* StructureGenerator.kt:166 */
  197    328   
    pub fn string(&self) -> ::std::option::Option<&str> {
         329  +
        /* StructureGenerator.kt:169 */
  198    330   
        self.string.as_deref()
         331  +
        /* StructureGenerator.kt:166 */
  199    332   
    }
         333  +
    /* StructureGenerator.kt:231 */
  200    334   
    #[allow(missing_docs)] // documentation missing in model
         335  +
                           /* StructureGenerator.kt:166 */
  201    336   
    pub fn byte(&self) -> ::std::option::Option<i8> {
         337  +
        /* StructureGenerator.kt:168 */
  202    338   
        self.byte
         339  +
        /* StructureGenerator.kt:166 */
  203    340   
    }
         341  +
    /* StructureGenerator.kt:231 */
  204    342   
    #[allow(missing_docs)] // documentation missing in model
         343  +
                           /* StructureGenerator.kt:166 */
  205    344   
    pub fn short(&self) -> ::std::option::Option<i16> {
         345  +
        /* StructureGenerator.kt:168 */
  206    346   
        self.short
         347  +
        /* StructureGenerator.kt:166 */
  207    348   
    }
         349  +
    /* StructureGenerator.kt:231 */
  208    350   
    #[allow(missing_docs)] // documentation missing in model
         351  +
                           /* StructureGenerator.kt:166 */
  209    352   
    pub fn integer(&self) -> ::std::option::Option<i32> {
         353  +
        /* StructureGenerator.kt:168 */
  210    354   
        self.integer
         355  +
        /* StructureGenerator.kt:166 */
  211    356   
    }
         357  +
    /* StructureGenerator.kt:231 */
  212    358   
    #[allow(missing_docs)] // documentation missing in model
         359  +
                           /* StructureGenerator.kt:166 */
  213    360   
    pub fn long(&self) -> ::std::option::Option<i64> {
         361  +
        /* StructureGenerator.kt:168 */
  214    362   
        self.long
         363  +
        /* StructureGenerator.kt:166 */
  215    364   
    }
         365  +
    /* StructureGenerator.kt:231 */
  216    366   
    #[allow(missing_docs)] // documentation missing in model
         367  +
                           /* StructureGenerator.kt:166 */
  217    368   
    pub fn float(&self) -> ::std::option::Option<f32> {
         369  +
        /* StructureGenerator.kt:168 */
  218    370   
        self.float
         371  +
        /* StructureGenerator.kt:166 */
  219    372   
    }
         373  +
    /* StructureGenerator.kt:231 */
  220    374   
    #[allow(missing_docs)] // documentation missing in model
         375  +
                           /* StructureGenerator.kt:166 */
  221    376   
    pub fn double(&self) -> ::std::option::Option<f64> {
         377  +
        /* StructureGenerator.kt:168 */
  222    378   
        self.double
         379  +
        /* StructureGenerator.kt:166 */
  223    380   
    }
         381  +
    /* StructureGenerator.kt:231 */
  224    382   
    #[allow(missing_docs)] // documentation missing in model
         383  +
                           /* StructureGenerator.kt:166 */
  225    384   
    pub fn timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         385  +
        /* StructureGenerator.kt:170 */
  226    386   
        self.timestamp.as_ref()
         387  +
        /* StructureGenerator.kt:166 */
  227    388   
    }
         389  +
    /* StructureGenerator.kt:231 */
  228    390   
    #[allow(missing_docs)] // documentation missing in model
         391  +
                           /* StructureGenerator.kt:166 */
  229    392   
    pub fn r#enum(&self) -> ::std::option::Option<&crate::model::Suit> {
         393  +
        /* StructureGenerator.kt:170 */
  230    394   
        self.r#enum.as_ref()
         395  +
        /* StructureGenerator.kt:166 */
  231    396   
    }
         397  +
    /* StructureGenerator.kt:231 */
  232    398   
    #[allow(missing_docs)] // documentation missing in model
         399  +
                           /* StructureGenerator.kt:166 */
  233    400   
    pub fn required_blob(&self) -> &::aws_smithy_types::Blob {
         401  +
        /* StructureGenerator.kt:172 */
  234    402   
        &self.required_blob
         403  +
        /* StructureGenerator.kt:166 */
  235    404   
    }
         405  +
    /* StructureGenerator.kt:231 */
  236    406   
    #[allow(missing_docs)] // documentation missing in model
         407  +
                           /* StructureGenerator.kt:166 */
  237    408   
    pub fn required_boolean(&self) -> bool {
         409  +
        /* StructureGenerator.kt:168 */
  238    410   
        self.required_boolean
         411  +
        /* StructureGenerator.kt:166 */
  239    412   
    }
         413  +
    /* StructureGenerator.kt:231 */
  240    414   
    #[allow(missing_docs)] // documentation missing in model
         415  +
                           /* StructureGenerator.kt:166 */
  241    416   
    pub fn required_string(&self) -> &str {
         417  +
        /* StructureGenerator.kt:171 */
  242    418   
        use std::ops::Deref;
  243    419   
        self.required_string.deref()
         420  +
        /* StructureGenerator.kt:166 */
  244    421   
    }
         422  +
    /* StructureGenerator.kt:231 */
  245    423   
    #[allow(missing_docs)] // documentation missing in model
         424  +
                           /* StructureGenerator.kt:166 */
  246    425   
    pub fn required_byte(&self) -> i8 {
         426  +
        /* StructureGenerator.kt:168 */
  247    427   
        self.required_byte
         428  +
        /* StructureGenerator.kt:166 */
  248    429   
    }
         430  +
    /* StructureGenerator.kt:231 */
  249    431   
    #[allow(missing_docs)] // documentation missing in model
         432  +
                           /* StructureGenerator.kt:166 */
  250    433   
    pub fn required_short(&self) -> i16 {
         434  +
        /* StructureGenerator.kt:168 */
  251    435   
        self.required_short
         436  +
        /* StructureGenerator.kt:166 */
  252    437   
    }
         438  +
    /* StructureGenerator.kt:231 */
  253    439   
    #[allow(missing_docs)] // documentation missing in model
         440  +
                           /* StructureGenerator.kt:166 */
  254    441   
    pub fn required_integer(&self) -> i32 {
         442  +
        /* StructureGenerator.kt:168 */
  255    443   
        self.required_integer
         444  +
        /* StructureGenerator.kt:166 */
  256    445   
    }
         446  +
    /* StructureGenerator.kt:231 */
  257    447   
    #[allow(missing_docs)] // documentation missing in model
         448  +
                           /* StructureGenerator.kt:166 */
  258    449   
    pub fn required_long(&self) -> i64 {
         450  +
        /* StructureGenerator.kt:168 */
  259    451   
        self.required_long
         452  +
        /* StructureGenerator.kt:166 */
  260    453   
    }
         454  +
    /* StructureGenerator.kt:231 */
  261    455   
    #[allow(missing_docs)] // documentation missing in model
         456  +
                           /* StructureGenerator.kt:166 */
  262    457   
    pub fn required_float(&self) -> f32 {
         458  +
        /* StructureGenerator.kt:168 */
  263    459   
        self.required_float
         460  +
        /* StructureGenerator.kt:166 */
  264    461   
    }
         462  +
    /* StructureGenerator.kt:231 */
  265    463   
    #[allow(missing_docs)] // documentation missing in model
         464  +
                           /* StructureGenerator.kt:166 */
  266    465   
    pub fn required_double(&self) -> f64 {
         466  +
        /* StructureGenerator.kt:168 */
  267    467   
        self.required_double
         468  +
        /* StructureGenerator.kt:166 */
  268    469   
    }
         470  +
    /* StructureGenerator.kt:231 */
  269    471   
    #[allow(missing_docs)] // documentation missing in model
         472  +
                           /* StructureGenerator.kt:166 */
  270    473   
    pub fn required_timestamp(&self) -> &::aws_smithy_types::DateTime {
         474  +
        /* StructureGenerator.kt:172 */
  271    475   
        &self.required_timestamp
         476  +
        /* StructureGenerator.kt:166 */
  272    477   
    }
         478  +
    /* StructureGenerator.kt:231 */
  273    479   
    #[allow(missing_docs)] // documentation missing in model
         480  +
                           /* StructureGenerator.kt:166 */
  274    481   
    pub fn required_enum(&self) -> &crate::model::Suit {
         482  +
        /* StructureGenerator.kt:172 */
  275    483   
        &self.required_enum
         484  +
        /* StructureGenerator.kt:166 */
  276    485   
    }
         486  +
    /* StructureGenerator.kt:135 */
  277    487   
}
         488  +
/* ServerCodegenVisitor.kt:345 */
  278    489   
impl SimpleStructOperationOutput {
  279         -
    /// Creates a new builder-style object to manufacture [`SimpleStructOperationOutput`](crate::output::SimpleStructOperationOutput).
         490  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`SimpleStructOperationOutput`](crate::output::SimpleStructOperationOutput).
         491  +
    /* ServerBuilderGenerator.kt:295 */
  280    492   
    pub fn builder() -> crate::output::simple_struct_operation_output::Builder {
         493  +
        /* ServerBuilderGenerator.kt:296 */
  281    494   
        crate::output::simple_struct_operation_output::Builder::default()
         495  +
        /* ServerBuilderGenerator.kt:295 */
  282    496   
    }
         497  +
    /* ServerCodegenVisitor.kt:345 */
  283    498   
}
  284         -
/// See [`SingleMemberStructOperationOutput`](crate::output::SingleMemberStructOperationOutput).
         499  +
/// /* ServerBuilderGenerator.kt:171 */See [`SingleMemberStructOperationOutput`](crate::output::SingleMemberStructOperationOutput).
  285    500   
pub mod single_member_struct_operation_output {
  286    501   
         502  +
    /* ServerBuilderGenerator.kt:461 */
  287    503   
    impl ::std::convert::From<Builder> for crate::output::SingleMemberStructOperationOutput {
  288    504   
        fn from(builder: Builder) -> Self {
  289    505   
            builder.build()
  290    506   
        }
  291    507   
    }
  292         -
    /// A builder for [`SingleMemberStructOperationOutput`](crate::output::SingleMemberStructOperationOutput).
         508  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`SingleMemberStructOperationOutput`](crate::output::SingleMemberStructOperationOutput).
         509  +
    /* RustType.kt:516 */
  293    510   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         511  +
    /* ServerBuilderGenerator.kt:211 */
  294    512   
    pub struct Builder {
         513  +
        /* ServerBuilderGenerator.kt:308 */
  295    514   
        pub(crate) message: ::std::option::Option<::std::string::String>,
         515  +
        /* ServerBuilderGenerator.kt:211 */
  296    516   
    }
         517  +
    /* ServerBuilderGenerator.kt:215 */
  297    518   
    impl Builder {
         519  +
        /* ServerBuilderGenerator.kt:331 */
  298    520   
        #[allow(missing_docs)] // documentation missing in model
         521  +
                               /* ServerBuilderGenerator.kt:343 */
  299    522   
        pub fn message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  300         -
            self.message = input;
         523  +
            /* ServerBuilderGenerator.kt:344 */
         524  +
            self.message =
         525  +
                /* ServerBuilderGenerator.kt:376 */input
         526  +
            /* ServerBuilderGenerator.kt:344 */;
  301    527   
            self
         528  +
            /* ServerBuilderGenerator.kt:343 */
  302    529   
        }
  303         -
        /// Consumes the builder and constructs a [`SingleMemberStructOperationOutput`](crate::output::SingleMemberStructOperationOutput).
         530  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`SingleMemberStructOperationOutput`](crate::output::SingleMemberStructOperationOutput).
         531  +
        /* ServerBuilderGenerator.kt:271 */
  304    532   
        pub fn build(self) -> crate::output::SingleMemberStructOperationOutput {
  305    533   
            self.build_enforcing_all_constraints()
  306    534   
        }
         535  +
        /* ServerBuilderGenerator.kt:283 */
  307    536   
        fn build_enforcing_all_constraints(
  308    537   
            self,
  309    538   
        ) -> crate::output::SingleMemberStructOperationOutput {
         539  +
            /* ServerBuilderGenerator.kt:542 */
  310    540   
            crate::output::SingleMemberStructOperationOutput {
         541  +
                /* ServerBuilderGenerator.kt:546 */
  311    542   
                message: self.message,
         543  +
                /* ServerBuilderGenerator.kt:542 */
  312    544   
            }
         545  +
            /* ServerBuilderGenerator.kt:283 */
  313    546   
        }
         547  +
        /* ServerBuilderGenerator.kt:215 */
  314    548   
    }
         549  +
         550  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  315    551   
}
  316         -
/// See [`EmptyStructOperationOutput`](crate::output::EmptyStructOperationOutput).
         552  +
/// /* ServerBuilderGenerator.kt:171 */See [`EmptyStructOperationOutput`](crate::output::EmptyStructOperationOutput).
  317    553   
pub mod empty_struct_operation_output {
  318    554   
         555  +
    /* ServerBuilderGenerator.kt:461 */
  319    556   
    impl ::std::convert::From<Builder> for crate::output::EmptyStructOperationOutput {
  320    557   
        fn from(builder: Builder) -> Self {
  321    558   
            builder.build()
  322    559   
        }
  323    560   
    }
  324         -
    /// A builder for [`EmptyStructOperationOutput`](crate::output::EmptyStructOperationOutput).
         561  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`EmptyStructOperationOutput`](crate::output::EmptyStructOperationOutput).
         562  +
    /* RustType.kt:516 */
  325    563   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  326         -
    pub struct Builder {}
         564  +
    /* ServerBuilderGenerator.kt:211 */
         565  +
    pub struct Builder {/* ServerBuilderGenerator.kt:211 */}
         566  +
    /* ServerBuilderGenerator.kt:215 */
  327    567   
    impl Builder {
  328         -
        /// Consumes the builder and constructs a [`EmptyStructOperationOutput`](crate::output::EmptyStructOperationOutput).
         568  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`EmptyStructOperationOutput`](crate::output::EmptyStructOperationOutput).
         569  +
        /* ServerBuilderGenerator.kt:271 */
  329    570   
        pub fn build(self) -> crate::output::EmptyStructOperationOutput {
  330    571   
            self.build_enforcing_all_constraints()
  331    572   
        }
         573  +
        /* ServerBuilderGenerator.kt:283 */
  332    574   
        fn build_enforcing_all_constraints(self) -> crate::output::EmptyStructOperationOutput {
  333         -
            crate::output::EmptyStructOperationOutput {}
         575  +
            /* ServerBuilderGenerator.kt:542 */
         576  +
            crate::output::EmptyStructOperationOutput {
         577  +
            /* ServerBuilderGenerator.kt:542 */}
         578  +
            /* ServerBuilderGenerator.kt:283 */
  334    579   
        }
         580  +
        /* ServerBuilderGenerator.kt:215 */
  335    581   
    }
         582  +
         583  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  336    584   
}
  337         -
/// See [`ComplexStructOperationOutput`](crate::output::ComplexStructOperationOutput).
         585  +
/// /* ServerBuilderGenerator.kt:171 */See [`ComplexStructOperationOutput`](crate::output::ComplexStructOperationOutput).
  338    586   
pub mod complex_struct_operation_output {
  339    587   
         588  +
    /* RustType.kt:516 */
  340    589   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
  341         -
    /// Holds one variant for each of the ways the builder can fail.
         590  +
    /// /* ServerBuilderConstraintViolations.kt:72 */Holds one variant for each of the ways the builder can fail.
         591  +
    /* RustType.kt:516 */
  342    592   
    #[non_exhaustive]
         593  +
    /* ServerBuilderConstraintViolations.kt:75 */
  343    594   
    #[allow(clippy::enum_variant_names)]
  344    595   
    pub enum ConstraintViolation {
  345         -
        /// `complex_list` was not provided but it is required when building `ComplexStructOperationOutput`.
         596  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`complex_list` was not provided but it is required when building `ComplexStructOperationOutput`.
         597  +
        /* ServerBuilderConstraintViolations.kt:143 */
  346    598   
        MissingComplexList,
  347         -
        /// `complex_map` was not provided but it is required when building `ComplexStructOperationOutput`.
         599  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`complex_map` was not provided but it is required when building `ComplexStructOperationOutput`.
         600  +
        /* ServerBuilderConstraintViolations.kt:143 */
  348    601   
        MissingComplexMap,
  349         -
        /// `complex_union` was not provided but it is required when building `ComplexStructOperationOutput`.
         602  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`complex_union` was not provided but it is required when building `ComplexStructOperationOutput`.
         603  +
        /* ServerBuilderConstraintViolations.kt:143 */
  350    604   
        MissingComplexUnion,
         605  +
        /* ServerBuilderConstraintViolations.kt:75 */
  351    606   
    }
         607  +
    /* ServerBuilderConstraintViolations.kt:117 */
  352    608   
    impl ::std::fmt::Display for ConstraintViolation {
         609  +
        /* ServerBuilderConstraintViolations.kt:118 */
  353    610   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         611  +
            /* ServerBuilderConstraintViolations.kt:119 */
  354    612   
            match self {
  355         -
                ConstraintViolation::MissingComplexList => write!(f, "`complex_list` was not provided but it is required when building `ComplexStructOperationOutput`"),
  356         -
                ConstraintViolation::MissingComplexMap => write!(f, "`complex_map` was not provided but it is required when building `ComplexStructOperationOutput`"),
  357         -
                ConstraintViolation::MissingComplexUnion => write!(f, "`complex_union` was not provided but it is required when building `ComplexStructOperationOutput`"),
  358         -
            }
         613  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingComplexList => write!(f, "`complex_list` was not provided but it is required when building `ComplexStructOperationOutput`"),
         614  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingComplexMap => write!(f, "`complex_map` was not provided but it is required when building `ComplexStructOperationOutput`"),
         615  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingComplexUnion => write!(f, "`complex_union` was not provided but it is required when building `ComplexStructOperationOutput`"),
         616  +
            /* ServerBuilderConstraintViolations.kt:119 */}
         617  +
            /* ServerBuilderConstraintViolations.kt:118 */
  359    618   
        }
         619  +
        /* ServerBuilderConstraintViolations.kt:117 */
  360    620   
    }
         621  +
    /* ServerBuilderConstraintViolations.kt:84 */
  361    622   
    impl ::std::error::Error for ConstraintViolation {}
         623  +
    /* ServerBuilderGenerator.kt:446 */
  362    624   
    impl ::std::convert::TryFrom<Builder> for crate::output::ComplexStructOperationOutput {
  363    625   
        type Error = ConstraintViolation;
  364    626   
  365    627   
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
  366    628   
            builder.build()
  367    629   
        }
  368    630   
    }
  369         -
    /// A builder for [`ComplexStructOperationOutput`](crate::output::ComplexStructOperationOutput).
         631  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`ComplexStructOperationOutput`](crate::output::ComplexStructOperationOutput).
         632  +
    /* RustType.kt:516 */
  370    633   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         634  +
    /* ServerBuilderGenerator.kt:211 */
  371    635   
    pub struct Builder {
         636  +
        /* ServerBuilderGenerator.kt:308 */
  372    637   
        pub(crate) structure: ::std::option::Option<crate::model::SimpleStruct>,
         638  +
        /* ServerBuilderGenerator.kt:308 */
  373    639   
        pub(crate) empty_structure: ::std::option::Option<crate::model::EmptyStruct>,
         640  +
        /* ServerBuilderGenerator.kt:308 */
  374    641   
        pub(crate) list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         642  +
        /* ServerBuilderGenerator.kt:308 */
  375    643   
        pub(crate) map:
  376    644   
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
         645  +
        /* ServerBuilderGenerator.kt:308 */
  377    646   
        pub(crate) union: ::std::option::Option<crate::model::SimpleUnion>,
         647  +
        /* ServerBuilderGenerator.kt:308 */
  378    648   
        pub(crate) unit_union: ::std::option::Option<crate::model::UnitUnion>,
         649  +
        /* ServerBuilderGenerator.kt:308 */
  379    650   
        pub(crate) structure_list:
  380    651   
            ::std::option::Option<::std::vec::Vec<crate::model::SimpleStruct>>,
         652  +
        /* ServerBuilderGenerator.kt:308 */
  381    653   
        pub(crate) complex_list: ::std::option::Option<
  382    654   
            ::std::vec::Vec<
  383    655   
                ::std::collections::HashMap<::std::string::String, crate::model::ComplexUnion>,
  384    656   
            >,
  385    657   
        >,
         658  +
        /* ServerBuilderGenerator.kt:308 */
  386    659   
        pub(crate) complex_map: ::std::option::Option<
  387    660   
            ::std::collections::HashMap<::std::string::String, crate::model::ComplexUnion>,
  388    661   
        >,
         662  +
        /* ServerBuilderGenerator.kt:308 */
  389    663   
        pub(crate) complex_union:
  390    664   
            ::std::option::Option<::std::boxed::Box<crate::model::ComplexUnion>>,
         665  +
        /* ServerBuilderGenerator.kt:211 */
  391    666   
    }
         667  +
    /* ServerBuilderGenerator.kt:215 */
  392    668   
    impl Builder {
         669  +
        /* ServerBuilderGenerator.kt:331 */
  393    670   
        #[allow(missing_docs)] // documentation missing in model
         671  +
                               /* ServerBuilderGenerator.kt:343 */
  394    672   
        pub fn structure(
  395    673   
            mut self,
  396    674   
            input: ::std::option::Option<crate::model::SimpleStruct>,
  397    675   
        ) -> Self {
  398         -
            self.structure = input;
         676  +
            /* ServerBuilderGenerator.kt:344 */
         677  +
            self.structure =
         678  +
                /* ServerBuilderGenerator.kt:376 */input
         679  +
            /* ServerBuilderGenerator.kt:344 */;
  399    680   
            self
         681  +
            /* ServerBuilderGenerator.kt:343 */
  400    682   
        }
         683  +
        /* ServerBuilderGenerator.kt:331 */
  401    684   
        #[allow(missing_docs)] // documentation missing in model
         685  +
                               /* ServerBuilderGenerator.kt:343 */
  402    686   
        pub fn empty_structure(
  403    687   
            mut self,
  404    688   
            input: ::std::option::Option<crate::model::EmptyStruct>,
  405    689   
        ) -> Self {
  406         -
            self.empty_structure = input;
         690  +
            /* ServerBuilderGenerator.kt:344 */
         691  +
            self.empty_structure =
         692  +
                /* ServerBuilderGenerator.kt:376 */input
         693  +
            /* ServerBuilderGenerator.kt:344 */;
  407    694   
            self
         695  +
            /* ServerBuilderGenerator.kt:343 */
  408    696   
        }
         697  +
        /* ServerBuilderGenerator.kt:331 */
  409    698   
        #[allow(missing_docs)] // documentation missing in model
         699  +
                               /* ServerBuilderGenerator.kt:343 */
  410    700   
        pub fn list(
  411    701   
            mut self,
  412    702   
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
  413    703   
        ) -> Self {
  414         -
            self.list = input;
         704  +
            /* ServerBuilderGenerator.kt:344 */
         705  +
            self.list =
         706  +
                /* ServerBuilderGenerator.kt:376 */input
         707  +
            /* ServerBuilderGenerator.kt:344 */;
  415    708   
            self
         709  +
            /* ServerBuilderGenerator.kt:343 */
  416    710   
        }
         711  +
        /* ServerBuilderGenerator.kt:331 */
  417    712   
        #[allow(missing_docs)] // documentation missing in model
         713  +
                               /* ServerBuilderGenerator.kt:343 */
  418    714   
        pub fn map(
  419    715   
            mut self,
  420    716   
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
  421    717   
        ) -> Self {
  422         -
            self.map = input;
         718  +
            /* ServerBuilderGenerator.kt:344 */
         719  +
            self.map =
         720  +
                /* ServerBuilderGenerator.kt:376 */input
         721  +
            /* ServerBuilderGenerator.kt:344 */;
  423    722   
            self
         723  +
            /* ServerBuilderGenerator.kt:343 */
  424    724   
        }
         725  +
        /* ServerBuilderGenerator.kt:331 */
  425    726   
        #[allow(missing_docs)] // documentation missing in model
         727  +
                               /* ServerBuilderGenerator.kt:343 */
  426    728   
        pub fn union(mut self, input: ::std::option::Option<crate::model::SimpleUnion>) -> Self {
  427         -
            self.union = input;
         729  +
            /* ServerBuilderGenerator.kt:344 */
         730  +
            self.union =
         731  +
                /* ServerBuilderGenerator.kt:376 */input
         732  +
            /* ServerBuilderGenerator.kt:344 */;
  428    733   
            self
         734  +
            /* ServerBuilderGenerator.kt:343 */
  429    735   
        }
         736  +
        /* ServerBuilderGenerator.kt:331 */
  430    737   
        #[allow(missing_docs)] // documentation missing in model
         738  +
                               /* ServerBuilderGenerator.kt:343 */
  431    739   
        pub fn unit_union(mut self, input: ::std::option::Option<crate::model::UnitUnion>) -> Self {
  432         -
            self.unit_union = input;
         740  +
            /* ServerBuilderGenerator.kt:344 */
         741  +
            self.unit_union =
         742  +
                /* ServerBuilderGenerator.kt:376 */input
         743  +
            /* ServerBuilderGenerator.kt:344 */;
  433    744   
            self
         745  +
            /* ServerBuilderGenerator.kt:343 */
  434    746   
        }
         747  +
        /* ServerBuilderGenerator.kt:331 */
  435    748   
        #[allow(missing_docs)] // documentation missing in model
         749  +
                               /* ServerBuilderGenerator.kt:343 */
  436    750   
        pub fn structure_list(
  437    751   
            mut self,
  438    752   
            input: ::std::option::Option<::std::vec::Vec<crate::model::SimpleStruct>>,
  439    753   
        ) -> Self {
  440         -
            self.structure_list = input;
         754  +
            /* ServerBuilderGenerator.kt:344 */
         755  +
            self.structure_list =
         756  +
                /* ServerBuilderGenerator.kt:376 */input
         757  +
            /* ServerBuilderGenerator.kt:344 */;
  441    758   
            self
         759  +
            /* ServerBuilderGenerator.kt:343 */
  442    760   
        }
         761  +
        /* ServerBuilderGenerator.kt:331 */
  443    762   
        #[allow(missing_docs)] // documentation missing in model
         763  +
                               /* ServerBuilderGenerator.kt:343 */
  444    764   
        pub fn complex_list(
  445    765   
            mut self,
  446    766   
            input: ::std::vec::Vec<
  447    767   
                ::std::collections::HashMap<::std::string::String, crate::model::ComplexUnion>,
  448    768   
            >,
  449    769   
        ) -> Self {
  450         -
            self.complex_list = Some(input);
         770  +
            /* ServerBuilderGenerator.kt:344 */
         771  +
            self.complex_list =
         772  +
                /* ServerBuilderGenerator.kt:345 */Some(
         773  +
                    /* ServerBuilderGenerator.kt:376 */input
         774  +
                /* ServerBuilderGenerator.kt:345 */)
         775  +
            /* ServerBuilderGenerator.kt:344 */;
  451    776   
            self
         777  +
            /* ServerBuilderGenerator.kt:343 */
  452    778   
        }
         779  +
        /* ServerBuilderGenerator.kt:331 */
  453    780   
        #[allow(missing_docs)] // documentation missing in model
         781  +
                               /* ServerBuilderGenerator.kt:343 */
  454    782   
        pub fn complex_map(
  455    783   
            mut self,
  456    784   
            input: ::std::collections::HashMap<::std::string::String, crate::model::ComplexUnion>,
  457    785   
        ) -> Self {
  458         -
            self.complex_map = Some(input);
         786  +
            /* ServerBuilderGenerator.kt:344 */
         787  +
            self.complex_map =
         788  +
                /* ServerBuilderGenerator.kt:345 */Some(
         789  +
                    /* ServerBuilderGenerator.kt:376 */input
         790  +
                /* ServerBuilderGenerator.kt:345 */)
         791  +
            /* ServerBuilderGenerator.kt:344 */;
  459    792   
            self
         793  +
            /* ServerBuilderGenerator.kt:343 */
  460    794   
        }
         795  +
        /* ServerBuilderGenerator.kt:331 */
  461    796   
        #[allow(missing_docs)] // documentation missing in model
         797  +
                               /* ServerBuilderGenerator.kt:343 */
  462    798   
        pub fn complex_union(
  463    799   
            mut self,
  464    800   
            input: ::std::boxed::Box<crate::model::ComplexUnion>,
  465    801   
        ) -> Self {
  466         -
            self.complex_union = Some(input);
         802  +
            /* ServerBuilderGenerator.kt:344 */
         803  +
            self.complex_union =
         804  +
                /* ServerBuilderGenerator.kt:345 */Some(
         805  +
                    /* ServerBuilderGenerator.kt:376 */input
         806  +
                /* ServerBuilderGenerator.kt:345 */)
         807  +
            /* ServerBuilderGenerator.kt:344 */;
  467    808   
            self
         809  +
            /* ServerBuilderGenerator.kt:343 */
  468    810   
        }
  469         -
        /// Consumes the builder and constructs a [`ComplexStructOperationOutput`](crate::output::ComplexStructOperationOutput).
  470         -
        ///
         811  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`ComplexStructOperationOutput`](crate::output::ComplexStructOperationOutput).
         812  +
        /// /* ServerBuilderGenerator.kt:260 */
  471    813   
        /// The builder fails to construct a [`ComplexStructOperationOutput`](crate::output::ComplexStructOperationOutput) if a [`ConstraintViolation`] occurs.
  472    814   
        ///
  473         -
        /// If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
         815  +
        /// /* ServerBuilderGenerator.kt:268 */If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
         816  +
        /* ServerBuilderGenerator.kt:271 */
  474    817   
        pub fn build(
  475    818   
            self,
  476    819   
        ) -> Result<crate::output::ComplexStructOperationOutput, ConstraintViolation> {
  477    820   
            self.build_enforcing_all_constraints()
  478    821   
        }
         822  +
        /* ServerBuilderGenerator.kt:283 */
  479    823   
        fn build_enforcing_all_constraints(
  480    824   
            self,
  481    825   
        ) -> Result<crate::output::ComplexStructOperationOutput, ConstraintViolation> {
  482         -
            Ok(crate::output::ComplexStructOperationOutput {
  483         -
                structure: self.structure,
  484         -
                empty_structure: self.empty_structure,
  485         -
                list: self.list,
  486         -
                map: self.map,
  487         -
                union: self.union,
  488         -
                unit_union: self.unit_union,
  489         -
                structure_list: self.structure_list,
  490         -
                complex_list: self
  491         -
                    .complex_list
  492         -
                    .ok_or(ConstraintViolation::MissingComplexList)?,
  493         -
                complex_map: self
  494         -
                    .complex_map
  495         -
                    .ok_or(ConstraintViolation::MissingComplexMap)?,
  496         -
                complex_union: self
  497         -
                    .complex_union
  498         -
                    .ok_or(ConstraintViolation::MissingComplexUnion)?,
  499         -
            })
         826  +
            /* ServerBuilderGenerator.kt:287 */
         827  +
            Ok(
         828  +
                /* ServerBuilderGenerator.kt:542 */
         829  +
                crate::output::ComplexStructOperationOutput {
         830  +
                    /* ServerBuilderGenerator.kt:546 */
         831  +
                    structure: self.structure,
         832  +
                    /* ServerBuilderGenerator.kt:546 */
         833  +
                    empty_structure: self.empty_structure,
         834  +
                    /* ServerBuilderGenerator.kt:546 */
         835  +
                    list: self.list,
         836  +
                    /* ServerBuilderGenerator.kt:546 */
         837  +
                    map: self.map,
         838  +
                    /* ServerBuilderGenerator.kt:546 */
         839  +
                    union: self.union,
         840  +
                    /* ServerBuilderGenerator.kt:546 */
         841  +
                    unit_union: self.unit_union,
         842  +
                    /* ServerBuilderGenerator.kt:546 */
         843  +
                    structure_list: self.structure_list,
         844  +
                    /* ServerBuilderGenerator.kt:546 */
         845  +
                    complex_list: self
         846  +
                        .complex_list
         847  +
                        /* ServerBuilderGenerator.kt:569 */
         848  +
                        .ok_or(ConstraintViolation::MissingComplexList)?,
         849  +
                    /* ServerBuilderGenerator.kt:546 */
         850  +
                    complex_map: self
         851  +
                        .complex_map
         852  +
                        /* ServerBuilderGenerator.kt:569 */
         853  +
                        .ok_or(ConstraintViolation::MissingComplexMap)?,
         854  +
                    /* ServerBuilderGenerator.kt:546 */
         855  +
                    complex_union: self
         856  +
                        .complex_union
         857  +
                        /* ServerBuilderGenerator.kt:569 */
         858  +
                        .ok_or(ConstraintViolation::MissingComplexUnion)?,
         859  +
                    /* ServerBuilderGenerator.kt:542 */
         860  +
                }, /* ServerBuilderGenerator.kt:287 */
         861  +
            )
         862  +
            /* ServerBuilderGenerator.kt:283 */
  500    863   
        }
         864  +
        /* ServerBuilderGenerator.kt:215 */
  501    865   
    }
         866  +
         867  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  502    868   
}
  503         -
/// See [`ErrorSerializationOperationOutput`](crate::output::ErrorSerializationOperationOutput).
         869  +
/// /* ServerBuilderGenerator.kt:171 */See [`ErrorSerializationOperationOutput`](crate::output::ErrorSerializationOperationOutput).
  504    870   
pub mod error_serialization_operation_output {
  505    871   
         872  +
    /* ServerBuilderGenerator.kt:461 */
  506    873   
    impl ::std::convert::From<Builder> for crate::output::ErrorSerializationOperationOutput {
  507    874   
        fn from(builder: Builder) -> Self {
  508    875   
            builder.build()
  509    876   
        }
  510    877   
    }
  511         -
    /// A builder for [`ErrorSerializationOperationOutput`](crate::output::ErrorSerializationOperationOutput).
         878  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`ErrorSerializationOperationOutput`](crate::output::ErrorSerializationOperationOutput).
         879  +
    /* RustType.kt:516 */
  512    880   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         881  +
    /* ServerBuilderGenerator.kt:211 */
  513    882   
    pub struct Builder {
         883  +
        /* ServerBuilderGenerator.kt:308 */
  514    884   
        pub(crate) error_shape: ::std::option::Option<crate::error::ValidationException>,
         885  +
        /* ServerBuilderGenerator.kt:211 */
  515    886   
    }
         887  +
    /* ServerBuilderGenerator.kt:215 */
  516    888   
    impl Builder {
  517         -
        /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
         889  +
        /// /* ServerBuilderGenerator.kt:331 */A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
         890  +
        /* ServerBuilderGenerator.kt:343 */
  518    891   
        pub fn error_shape(
  519    892   
            mut self,
  520    893   
            input: ::std::option::Option<crate::error::ValidationException>,
  521    894   
        ) -> Self {
  522         -
            self.error_shape = input;
         895  +
            /* ServerBuilderGenerator.kt:344 */
         896  +
            self.error_shape =
         897  +
                /* ServerBuilderGenerator.kt:376 */input
         898  +
            /* ServerBuilderGenerator.kt:344 */;
  523    899   
            self
         900  +
            /* ServerBuilderGenerator.kt:343 */
  524    901   
        }
  525         -
        /// Consumes the builder and constructs a [`ErrorSerializationOperationOutput`](crate::output::ErrorSerializationOperationOutput).
         902  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`ErrorSerializationOperationOutput`](crate::output::ErrorSerializationOperationOutput).
         903  +
        /* ServerBuilderGenerator.kt:271 */
  526    904   
        pub fn build(self) -> crate::output::ErrorSerializationOperationOutput {
  527    905   
            self.build_enforcing_all_constraints()
  528    906   
        }
         907  +
        /* ServerBuilderGenerator.kt:283 */
  529    908   
        fn build_enforcing_all_constraints(
  530    909   
            self,
  531    910   
        ) -> crate::output::ErrorSerializationOperationOutput {
         911  +
            /* ServerBuilderGenerator.kt:542 */
  532    912   
            crate::output::ErrorSerializationOperationOutput {
         913  +
                /* ServerBuilderGenerator.kt:546 */
  533    914   
                error_shape: self.error_shape,
         915  +
                /* ServerBuilderGenerator.kt:542 */
  534    916   
            }
         917  +
            /* ServerBuilderGenerator.kt:283 */
  535    918   
        }
         919  +
        /* ServerBuilderGenerator.kt:215 */
  536    920   
    }
         921  +
         922  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  537    923   
}
  538         -
/// See [`SimpleStructOperationOutput`](crate::output::SimpleStructOperationOutput).
         924  +
/// /* ServerBuilderGenerator.kt:171 */See [`SimpleStructOperationOutput`](crate::output::SimpleStructOperationOutput).
  539    925   
pub mod simple_struct_operation_output {
  540    926   
         927  +
    /* RustType.kt:516 */
  541    928   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
  542         -
    /// Holds one variant for each of the ways the builder can fail.
         929  +
    /// /* ServerBuilderConstraintViolations.kt:72 */Holds one variant for each of the ways the builder can fail.
         930  +
    /* RustType.kt:516 */
  543    931   
    #[non_exhaustive]
         932  +
    /* ServerBuilderConstraintViolations.kt:75 */
  544    933   
    #[allow(clippy::enum_variant_names)]
  545    934   
    pub enum ConstraintViolation {
  546         -
        /// `required_blob` was not provided but it is required when building `SimpleStructOperationOutput`.
         935  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`required_blob` was not provided but it is required when building `SimpleStructOperationOutput`.
         936  +
        /* ServerBuilderConstraintViolations.kt:143 */
  547    937   
        MissingRequiredBlob,
  548         -
        /// `required_boolean` was not provided but it is required when building `SimpleStructOperationOutput`.
         938  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`required_boolean` was not provided but it is required when building `SimpleStructOperationOutput`.
         939  +
        /* ServerBuilderConstraintViolations.kt:143 */
  549    940   
        MissingRequiredBoolean,
  550         -
        /// `required_string` was not provided but it is required when building `SimpleStructOperationOutput`.
         941  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`required_string` was not provided but it is required when building `SimpleStructOperationOutput`.
         942  +
        /* ServerBuilderConstraintViolations.kt:143 */
  551    943   
        MissingRequiredString,
  552         -
        /// `required_byte` was not provided but it is required when building `SimpleStructOperationOutput`.
         944  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`required_byte` was not provided but it is required when building `SimpleStructOperationOutput`.
         945  +
        /* ServerBuilderConstraintViolations.kt:143 */
  553    946   
        MissingRequiredByte,
  554         -
        /// `required_short` was not provided but it is required when building `SimpleStructOperationOutput`.
         947  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`required_short` was not provided but it is required when building `SimpleStructOperationOutput`.
         948  +
        /* ServerBuilderConstraintViolations.kt:143 */
  555    949   
        MissingRequiredShort,
  556         -
        /// `required_integer` was not provided but it is required when building `SimpleStructOperationOutput`.
         950  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`required_integer` was not provided but it is required when building `SimpleStructOperationOutput`.
         951  +
        /* ServerBuilderConstraintViolations.kt:143 */
  557    952   
        MissingRequiredInteger,
  558         -
        /// `required_long` was not provided but it is required when building `SimpleStructOperationOutput`.
         953  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`required_long` was not provided but it is required when building `SimpleStructOperationOutput`.
         954  +
        /* ServerBuilderConstraintViolations.kt:143 */
  559    955   
        MissingRequiredLong,
  560         -
        /// `required_float` was not provided but it is required when building `SimpleStructOperationOutput`.
         956  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`required_float` was not provided but it is required when building `SimpleStructOperationOutput`.
         957  +
        /* ServerBuilderConstraintViolations.kt:143 */
  561    958   
        MissingRequiredFloat,
  562         -
        /// `required_double` was not provided but it is required when building `SimpleStructOperationOutput`.
         959  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`required_double` was not provided but it is required when building `SimpleStructOperationOutput`.
         960  +
        /* ServerBuilderConstraintViolations.kt:143 */
  563    961   
        MissingRequiredDouble,
  564         -
        /// `required_timestamp` was not provided but it is required when building `SimpleStructOperationOutput`.
         962  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`required_timestamp` was not provided but it is required when building `SimpleStructOperationOutput`.
         963  +
        /* ServerBuilderConstraintViolations.kt:143 */
  565    964   
        MissingRequiredTimestamp,
  566         -
        /// `required_enum` was not provided but it is required when building `SimpleStructOperationOutput`.
         965  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`required_enum` was not provided but it is required when building `SimpleStructOperationOutput`.
         966  +
        /* ServerBuilderConstraintViolations.kt:143 */
  567    967   
        MissingRequiredEnum,
         968  +
        /* ServerBuilderConstraintViolations.kt:75 */
  568    969   
    }
         970  +
    /* ServerBuilderConstraintViolations.kt:117 */
  569    971   
    impl ::std::fmt::Display for ConstraintViolation {
         972  +
        /* ServerBuilderConstraintViolations.kt:118 */
  570    973   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         974  +
            /* ServerBuilderConstraintViolations.kt:119 */
  571    975   
            match self {
  572         -
                ConstraintViolation::MissingRequiredBlob => write!(f, "`required_blob` was not provided but it is required when building `SimpleStructOperationOutput`"),
  573         -
                ConstraintViolation::MissingRequiredBoolean => write!(f, "`required_boolean` was not provided but it is required when building `SimpleStructOperationOutput`"),
  574         -
                ConstraintViolation::MissingRequiredString => write!(f, "`required_string` was not provided but it is required when building `SimpleStructOperationOutput`"),
  575         -
                ConstraintViolation::MissingRequiredByte => write!(f, "`required_byte` was not provided but it is required when building `SimpleStructOperationOutput`"),
  576         -
                ConstraintViolation::MissingRequiredShort => write!(f, "`required_short` was not provided but it is required when building `SimpleStructOperationOutput`"),
  577         -
                ConstraintViolation::MissingRequiredInteger => write!(f, "`required_integer` was not provided but it is required when building `SimpleStructOperationOutput`"),
  578         -
                ConstraintViolation::MissingRequiredLong => write!(f, "`required_long` was not provided but it is required when building `SimpleStructOperationOutput`"),
  579         -
                ConstraintViolation::MissingRequiredFloat => write!(f, "`required_float` was not provided but it is required when building `SimpleStructOperationOutput`"),
  580         -
                ConstraintViolation::MissingRequiredDouble => write!(f, "`required_double` was not provided but it is required when building `SimpleStructOperationOutput`"),
  581         -
                ConstraintViolation::MissingRequiredTimestamp => write!(f, "`required_timestamp` was not provided but it is required when building `SimpleStructOperationOutput`"),
  582         -
                ConstraintViolation::MissingRequiredEnum => write!(f, "`required_enum` was not provided but it is required when building `SimpleStructOperationOutput`"),
  583         -
            }
         976  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingRequiredBlob => write!(f, "`required_blob` was not provided but it is required when building `SimpleStructOperationOutput`"),
         977  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingRequiredBoolean => write!(f, "`required_boolean` was not provided but it is required when building `SimpleStructOperationOutput`"),
         978  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingRequiredString => write!(f, "`required_string` was not provided but it is required when building `SimpleStructOperationOutput`"),
         979  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingRequiredByte => write!(f, "`required_byte` was not provided but it is required when building `SimpleStructOperationOutput`"),
         980  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingRequiredShort => write!(f, "`required_short` was not provided but it is required when building `SimpleStructOperationOutput`"),
         981  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingRequiredInteger => write!(f, "`required_integer` was not provided but it is required when building `SimpleStructOperationOutput`"),
         982  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingRequiredLong => write!(f, "`required_long` was not provided but it is required when building `SimpleStructOperationOutput`"),
         983  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingRequiredFloat => write!(f, "`required_float` was not provided but it is required when building `SimpleStructOperationOutput`"),
         984  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingRequiredDouble => write!(f, "`required_double` was not provided but it is required when building `SimpleStructOperationOutput`"),
         985  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingRequiredTimestamp => write!(f, "`required_timestamp` was not provided but it is required when building `SimpleStructOperationOutput`"),
         986  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingRequiredEnum => write!(f, "`required_enum` was not provided but it is required when building `SimpleStructOperationOutput`"),
         987  +
            /* ServerBuilderConstraintViolations.kt:119 */}
         988  +
            /* ServerBuilderConstraintViolations.kt:118 */
  584    989   
        }
         990  +
        /* ServerBuilderConstraintViolations.kt:117 */
  585    991   
    }
         992  +
    /* ServerBuilderConstraintViolations.kt:84 */
  586    993   
    impl ::std::error::Error for ConstraintViolation {}
         994  +
    /* ServerBuilderGenerator.kt:446 */
  587    995   
    impl ::std::convert::TryFrom<Builder> for crate::output::SimpleStructOperationOutput {
  588    996   
        type Error = ConstraintViolation;
  589    997   
  590    998   
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
  591    999   
            builder.build()
  592   1000   
        }
  593   1001   
    }
  594         -
    /// A builder for [`SimpleStructOperationOutput`](crate::output::SimpleStructOperationOutput).
        1002  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`SimpleStructOperationOutput`](crate::output::SimpleStructOperationOutput).
        1003  +
    /* RustType.kt:516 */
  595   1004   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1005  +
    /* ServerBuilderGenerator.kt:211 */
  596   1006   
    pub struct Builder {
        1007  +
        /* ServerBuilderGenerator.kt:308 */
  597   1008   
        pub(crate) blob: ::std::option::Option<::aws_smithy_types::Blob>,
  598         -
        pub(crate) boolean: ::std::option::Option<bool>,
        1009  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) boolean: ::std::option::Option<bool>,
        1010  +
        /* ServerBuilderGenerator.kt:308 */
  599   1011   
        pub(crate) string: ::std::option::Option<::std::string::String>,
  600         -
        pub(crate) byte: ::std::option::Option<i8>,
  601         -
        pub(crate) short: ::std::option::Option<i16>,
  602         -
        pub(crate) integer: ::std::option::Option<i32>,
  603         -
        pub(crate) long: ::std::option::Option<i64>,
  604         -
        pub(crate) float: ::std::option::Option<f32>,
  605         -
        pub(crate) double: ::std::option::Option<f64>,
        1012  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) byte: ::std::option::Option<i8>,
        1013  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) short: ::std::option::Option<i16>,
        1014  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) integer: ::std::option::Option<i32>,
        1015  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) long: ::std::option::Option<i64>,
        1016  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) float: ::std::option::Option<f32>,
        1017  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) double: ::std::option::Option<f64>,
        1018  +
        /* ServerBuilderGenerator.kt:308 */
  606   1019   
        pub(crate) timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
        1020  +
        /* ServerBuilderGenerator.kt:308 */
  607   1021   
        pub(crate) r#enum: ::std::option::Option<crate::model::Suit>,
        1022  +
        /* ServerBuilderGenerator.kt:308 */
  608   1023   
        pub(crate) required_blob: ::std::option::Option<::aws_smithy_types::Blob>,
        1024  +
        /* ServerBuilderGenerator.kt:308 */
  609   1025   
        pub(crate) required_boolean: ::std::option::Option<bool>,
        1026  +
        /* ServerBuilderGenerator.kt:308 */
  610   1027   
        pub(crate) required_string: ::std::option::Option<::std::string::String>,
        1028  +
        /* ServerBuilderGenerator.kt:308 */
  611   1029   
        pub(crate) required_byte: ::std::option::Option<i8>,
        1030  +
        /* ServerBuilderGenerator.kt:308 */
  612   1031   
        pub(crate) required_short: ::std::option::Option<i16>,
        1032  +
        /* ServerBuilderGenerator.kt:308 */
  613   1033   
        pub(crate) required_integer: ::std::option::Option<i32>,
        1034  +
        /* ServerBuilderGenerator.kt:308 */
  614   1035   
        pub(crate) required_long: ::std::option::Option<i64>,
        1036  +
        /* ServerBuilderGenerator.kt:308 */
  615   1037   
        pub(crate) required_float: ::std::option::Option<f32>,
        1038  +
        /* ServerBuilderGenerator.kt:308 */
  616   1039   
        pub(crate) required_double: ::std::option::Option<f64>,
        1040  +
        /* ServerBuilderGenerator.kt:308 */
  617   1041   
        pub(crate) required_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
        1042  +
        /* ServerBuilderGenerator.kt:308 */
  618   1043   
        pub(crate) required_enum: ::std::option::Option<crate::model::Suit>,
        1044  +
        /* ServerBuilderGenerator.kt:211 */
  619   1045   
    }
        1046  +
    /* ServerBuilderGenerator.kt:215 */
  620   1047   
    impl Builder {
        1048  +
        /* ServerBuilderGenerator.kt:331 */
  621   1049   
        #[allow(missing_docs)] // documentation missing in model
        1050  +
                               /* ServerBuilderGenerator.kt:343 */
  622   1051   
        pub fn blob(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
  623         -
            self.blob = input;
        1052  +
            /* ServerBuilderGenerator.kt:344 */
        1053  +
            self.blob =
        1054  +
                /* ServerBuilderGenerator.kt:376 */input
        1055  +
            /* ServerBuilderGenerator.kt:344 */;
  624   1056   
            self
        1057  +
            /* ServerBuilderGenerator.kt:343 */
  625   1058   
        }
        1059  +
        /* ServerBuilderGenerator.kt:331 */
  626   1060   
        #[allow(missing_docs)] // documentation missing in model
        1061  +
                               /* ServerBuilderGenerator.kt:343 */
  627   1062   
        pub fn boolean(mut self, input: ::std::option::Option<bool>) -> Self {
  628         -
            self.boolean = input;
        1063  +
            /* ServerBuilderGenerator.kt:344 */
        1064  +
            self.boolean =
        1065  +
                /* ServerBuilderGenerator.kt:376 */input
        1066  +
            /* ServerBuilderGenerator.kt:344 */;
  629   1067   
            self
        1068  +
            /* ServerBuilderGenerator.kt:343 */
  630   1069   
        }
        1070  +
        /* ServerBuilderGenerator.kt:331 */
  631   1071   
        #[allow(missing_docs)] // documentation missing in model
        1072  +
                               /* ServerBuilderGenerator.kt:343 */
  632   1073   
        pub fn string(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  633         -
            self.string = input;
        1074  +
            /* ServerBuilderGenerator.kt:344 */
        1075  +
            self.string =
        1076  +
                /* ServerBuilderGenerator.kt:376 */input
        1077  +
            /* ServerBuilderGenerator.kt:344 */;
  634   1078   
            self
        1079  +
            /* ServerBuilderGenerator.kt:343 */
  635   1080   
        }
        1081  +
        /* ServerBuilderGenerator.kt:331 */
  636   1082   
        #[allow(missing_docs)] // documentation missing in model
        1083  +
                               /* ServerBuilderGenerator.kt:343 */
  637   1084   
        pub fn byte(mut self, input: ::std::option::Option<i8>) -> Self {
  638         -
            self.byte = input;
        1085  +
            /* ServerBuilderGenerator.kt:344 */
        1086  +
            self.byte =
        1087  +
                /* ServerBuilderGenerator.kt:376 */input
        1088  +
            /* ServerBuilderGenerator.kt:344 */;
  639   1089   
            self
        1090  +
            /* ServerBuilderGenerator.kt:343 */
  640   1091   
        }
        1092  +
        /* ServerBuilderGenerator.kt:331 */
  641   1093   
        #[allow(missing_docs)] // documentation missing in model
        1094  +
                               /* ServerBuilderGenerator.kt:343 */
  642   1095   
        pub fn short(mut self, input: ::std::option::Option<i16>) -> Self {
  643         -
            self.short = input;
        1096  +
            /* ServerBuilderGenerator.kt:344 */
        1097  +
            self.short =
        1098  +
                /* ServerBuilderGenerator.kt:376 */input
        1099  +
            /* ServerBuilderGenerator.kt:344 */;
  644   1100   
            self
        1101  +
            /* ServerBuilderGenerator.kt:343 */
  645   1102   
        }
        1103  +
        /* ServerBuilderGenerator.kt:331 */
  646   1104   
        #[allow(missing_docs)] // documentation missing in model
        1105  +
                               /* ServerBuilderGenerator.kt:343 */
  647   1106   
        pub fn integer(mut self, input: ::std::option::Option<i32>) -> Self {
  648         -
            self.integer = input;
        1107  +
            /* ServerBuilderGenerator.kt:344 */
        1108  +
            self.integer =
        1109  +
                /* ServerBuilderGenerator.kt:376 */input
        1110  +
            /* ServerBuilderGenerator.kt:344 */;
  649   1111   
            self
        1112  +
            /* ServerBuilderGenerator.kt:343 */
  650   1113   
        }
        1114  +
        /* ServerBuilderGenerator.kt:331 */
  651   1115   
        #[allow(missing_docs)] // documentation missing in model
        1116  +
                               /* ServerBuilderGenerator.kt:343 */
  652   1117   
        pub fn long(mut self, input: ::std::option::Option<i64>) -> Self {
  653         -
            self.long = input;
        1118  +
            /* ServerBuilderGenerator.kt:344 */
        1119  +
            self.long =
        1120  +
                /* ServerBuilderGenerator.kt:376 */input
        1121  +
            /* ServerBuilderGenerator.kt:344 */;
  654   1122   
            self
        1123  +
            /* ServerBuilderGenerator.kt:343 */
  655   1124   
        }
        1125  +
        /* ServerBuilderGenerator.kt:331 */
  656   1126   
        #[allow(missing_docs)] // documentation missing in model
        1127  +
                               /* ServerBuilderGenerator.kt:343 */
  657   1128   
        pub fn float(mut self, input: ::std::option::Option<f32>) -> Self {
  658         -
            self.float = input;
        1129  +
            /* ServerBuilderGenerator.kt:344 */
        1130  +
            self.float =
        1131  +
                /* ServerBuilderGenerator.kt:376 */input
        1132  +
            /* ServerBuilderGenerator.kt:344 */;
  659   1133   
            self
        1134  +
            /* ServerBuilderGenerator.kt:343 */
  660   1135   
        }
        1136  +
        /* ServerBuilderGenerator.kt:331 */
  661   1137   
        #[allow(missing_docs)] // documentation missing in model
        1138  +
                               /* ServerBuilderGenerator.kt:343 */
  662   1139   
        pub fn double(mut self, input: ::std::option::Option<f64>) -> Self {
  663         -
            self.double = input;
        1140  +
            /* ServerBuilderGenerator.kt:344 */
        1141  +
            self.double =
        1142  +
                /* ServerBuilderGenerator.kt:376 */input
        1143  +
            /* ServerBuilderGenerator.kt:344 */;
  664   1144   
            self
        1145  +
            /* ServerBuilderGenerator.kt:343 */
  665   1146   
        }
        1147  +
        /* ServerBuilderGenerator.kt:331 */
  666   1148   
        #[allow(missing_docs)] // documentation missing in model
        1149  +
                               /* ServerBuilderGenerator.kt:343 */
  667   1150   
        pub fn timestamp(
  668   1151   
            mut self,
  669   1152   
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
  670   1153   
        ) -> Self {
  671         -
            self.timestamp = input;
        1154  +
            /* ServerBuilderGenerator.kt:344 */
        1155  +
            self.timestamp =
        1156  +
                /* ServerBuilderGenerator.kt:376 */input
        1157  +
            /* ServerBuilderGenerator.kt:344 */;
  672   1158   
            self
        1159  +
            /* ServerBuilderGenerator.kt:343 */
  673   1160   
        }
        1161  +
        /* ServerBuilderGenerator.kt:331 */
  674   1162   
        #[allow(missing_docs)] // documentation missing in model
        1163  +
                               /* ServerBuilderGenerator.kt:343 */
  675   1164   
        pub fn r#enum(mut self, input: ::std::option::Option<crate::model::Suit>) -> Self {
  676         -
            self.r#enum = input;
        1165  +
            /* ServerBuilderGenerator.kt:344 */
        1166  +
            self.r#enum =
        1167  +
                /* ServerBuilderGenerator.kt:376 */input
        1168  +
            /* ServerBuilderGenerator.kt:344 */;
  677   1169   
            self
        1170  +
            /* ServerBuilderGenerator.kt:343 */
  678   1171   
        }
        1172  +
        /* ServerBuilderGenerator.kt:331 */
  679   1173   
        #[allow(missing_docs)] // documentation missing in model
        1174  +
                               /* ServerBuilderGenerator.kt:343 */
  680   1175   
        pub fn required_blob(mut self, input: ::aws_smithy_types::Blob) -> Self {
  681         -
            self.required_blob = Some(input);
        1176  +
            /* ServerBuilderGenerator.kt:344 */
        1177  +
            self.required_blob =
        1178  +
                /* ServerBuilderGenerator.kt:345 */Some(
        1179  +
                    /* ServerBuilderGenerator.kt:376 */input
        1180  +
                /* ServerBuilderGenerator.kt:345 */)
        1181  +
            /* ServerBuilderGenerator.kt:344 */;
  682   1182   
            self
        1183  +
            /* ServerBuilderGenerator.kt:343 */
  683   1184   
        }
        1185  +
        /* ServerBuilderGenerator.kt:331 */
  684   1186   
        #[allow(missing_docs)] // documentation missing in model
        1187  +
                               /* ServerBuilderGenerator.kt:343 */
  685   1188   
        pub fn required_boolean(mut self, input: bool) -> Self {
  686         -
            self.required_boolean = Some(input);
        1189  +
            /* ServerBuilderGenerator.kt:344 */
        1190  +
            self.required_boolean =
        1191  +
                /* ServerBuilderGenerator.kt:345 */Some(
        1192  +
                    /* ServerBuilderGenerator.kt:376 */input
        1193  +
                /* ServerBuilderGenerator.kt:345 */)
        1194  +
            /* ServerBuilderGenerator.kt:344 */;
  687   1195   
            self
        1196  +
            /* ServerBuilderGenerator.kt:343 */
  688   1197   
        }
        1198  +
        /* ServerBuilderGenerator.kt:331 */
  689   1199   
        #[allow(missing_docs)] // documentation missing in model
        1200  +
                               /* ServerBuilderGenerator.kt:343 */
  690   1201   
        pub fn required_string(mut self, input: ::std::string::String) -> Self {
  691         -
            self.required_string = Some(input);
        1202  +
            /* ServerBuilderGenerator.kt:344 */
        1203  +
            self.required_string =
        1204  +
                /* ServerBuilderGenerator.kt:345 */Some(
        1205  +
                    /* ServerBuilderGenerator.kt:376 */input
        1206  +
                /* ServerBuilderGenerator.kt:345 */)
        1207  +
            /* ServerBuilderGenerator.kt:344 */;
  692   1208   
            self
        1209  +
            /* ServerBuilderGenerator.kt:343 */
  693   1210   
        }
        1211  +
        /* ServerBuilderGenerator.kt:331 */
  694   1212   
        #[allow(missing_docs)] // documentation missing in model
        1213  +
                               /* ServerBuilderGenerator.kt:343 */
  695   1214   
        pub fn required_byte(mut self, input: i8) -> Self {
  696         -
            self.required_byte = Some(input);
        1215  +
            /* ServerBuilderGenerator.kt:344 */
        1216  +
            self.required_byte =
        1217  +
                /* ServerBuilderGenerator.kt:345 */Some(
        1218  +
                    /* ServerBuilderGenerator.kt:376 */input
        1219  +
                /* ServerBuilderGenerator.kt:345 */)
        1220  +
            /* ServerBuilderGenerator.kt:344 */;
  697   1221   
            self
        1222  +
            /* ServerBuilderGenerator.kt:343 */
  698   1223   
        }
        1224  +
        /* ServerBuilderGenerator.kt:331 */
  699   1225   
        #[allow(missing_docs)] // documentation missing in model
        1226  +
                               /* ServerBuilderGenerator.kt:343 */
  700   1227   
        pub fn required_short(mut self, input: i16) -> Self {
  701         -
            self.required_short = Some(input);
        1228  +
            /* ServerBuilderGenerator.kt:344 */
        1229  +
            self.required_short =
        1230  +
                /* ServerBuilderGenerator.kt:345 */Some(
        1231  +
                    /* ServerBuilderGenerator.kt:376 */input
        1232  +
                /* ServerBuilderGenerator.kt:345 */)
        1233  +
            /* ServerBuilderGenerator.kt:344 */;
  702   1234   
            self
        1235  +
            /* ServerBuilderGenerator.kt:343 */
  703   1236   
        }
        1237  +
        /* ServerBuilderGenerator.kt:331 */
  704   1238   
        #[allow(missing_docs)] // documentation missing in model
        1239  +
                               /* ServerBuilderGenerator.kt:343 */
  705   1240   
        pub fn required_integer(mut self, input: i32) -> Self {
  706         -
            self.required_integer = Some(input);
        1241  +
            /* ServerBuilderGenerator.kt:344 */
        1242  +
            self.required_integer =
        1243  +
                /* ServerBuilderGenerator.kt:345 */Some(
        1244  +
                    /* ServerBuilderGenerator.kt:376 */input
        1245  +
                /* ServerBuilderGenerator.kt:345 */)
        1246  +
            /* ServerBuilderGenerator.kt:344 */;
  707   1247   
            self
        1248  +
            /* ServerBuilderGenerator.kt:343 */
  708   1249   
        }
        1250  +
        /* ServerBuilderGenerator.kt:331 */
  709   1251   
        #[allow(missing_docs)] // documentation missing in model
        1252  +
                               /* ServerBuilderGenerator.kt:343 */
  710   1253   
        pub fn required_long(mut self, input: i64) -> Self {
  711         -
            self.required_long = Some(input);
        1254  +
            /* ServerBuilderGenerator.kt:344 */
        1255  +
            self.required_long =
        1256  +
                /* ServerBuilderGenerator.kt:345 */Some(
        1257  +
                    /* ServerBuilderGenerator.kt:376 */input
        1258  +
                /* ServerBuilderGenerator.kt:345 */)
        1259  +
            /* ServerBuilderGenerator.kt:344 */;
  712   1260   
            self
        1261  +
            /* ServerBuilderGenerator.kt:343 */
  713   1262   
        }
        1263  +
        /* ServerBuilderGenerator.kt:331 */
  714   1264   
        #[allow(missing_docs)] // documentation missing in model
        1265  +
                               /* ServerBuilderGenerator.kt:343 */
  715   1266   
        pub fn required_float(mut self, input: f32) -> Self {
  716         -
            self.required_float = Some(input);
        1267  +
            /* ServerBuilderGenerator.kt:344 */
        1268  +
            self.required_float =
        1269  +
                /* ServerBuilderGenerator.kt:345 */Some(
        1270  +
                    /* ServerBuilderGenerator.kt:376 */input
        1271  +
                /* ServerBuilderGenerator.kt:345 */)
        1272  +
            /* ServerBuilderGenerator.kt:344 */;
  717   1273   
            self
        1274  +
            /* ServerBuilderGenerator.kt:343 */
  718   1275   
        }
        1276  +
        /* ServerBuilderGenerator.kt:331 */
  719   1277   
        #[allow(missing_docs)] // documentation missing in model
        1278  +
                               /* ServerBuilderGenerator.kt:343 */
  720   1279   
        pub fn required_double(mut self, input: f64) -> Self {
  721         -
            self.required_double = Some(input);
        1280  +
            /* ServerBuilderGenerator.kt:344 */
        1281  +
            self.required_double =
        1282  +
                /* ServerBuilderGenerator.kt:345 */Some(
        1283  +
                    /* ServerBuilderGenerator.kt:376 */input
        1284  +
                /* ServerBuilderGenerator.kt:345 */)
        1285  +
            /* ServerBuilderGenerator.kt:344 */;
  722   1286   
            self
        1287  +
            /* ServerBuilderGenerator.kt:343 */
  723   1288   
        }
        1289  +
        /* ServerBuilderGenerator.kt:331 */
  724   1290   
        #[allow(missing_docs)] // documentation missing in model
        1291  +
                               /* ServerBuilderGenerator.kt:343 */
  725   1292   
        pub fn required_timestamp(mut self, input: ::aws_smithy_types::DateTime) -> Self {
  726         -
            self.required_timestamp = Some(input);
        1293  +
            /* ServerBuilderGenerator.kt:344 */
        1294  +
            self.required_timestamp =
        1295  +
                /* ServerBuilderGenerator.kt:345 */Some(
        1296  +
                    /* ServerBuilderGenerator.kt:376 */input
        1297  +
                /* ServerBuilderGenerator.kt:345 */)
        1298  +
            /* ServerBuilderGenerator.kt:344 */;
  727   1299   
            self
        1300  +
            /* ServerBuilderGenerator.kt:343 */
  728   1301   
        }
        1302  +
        /* ServerBuilderGenerator.kt:331 */
  729   1303   
        #[allow(missing_docs)] // documentation missing in model
        1304  +
                               /* ServerBuilderGenerator.kt:343 */
  730   1305   
        pub fn required_enum(mut self, input: crate::model::Suit) -> Self {
  731         -
            self.required_enum = Some(input);
        1306  +
            /* ServerBuilderGenerator.kt:344 */
        1307  +
            self.required_enum =
        1308  +
                /* ServerBuilderGenerator.kt:345 */Some(
        1309  +
                    /* ServerBuilderGenerator.kt:376 */input
        1310  +
                /* ServerBuilderGenerator.kt:345 */)
        1311  +
            /* ServerBuilderGenerator.kt:344 */;
  732   1312   
            self
        1313  +
            /* ServerBuilderGenerator.kt:343 */
  733   1314   
        }
  734         -
        /// Consumes the builder and constructs a [`SimpleStructOperationOutput`](crate::output::SimpleStructOperationOutput).
  735         -
        ///
        1315  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`SimpleStructOperationOutput`](crate::output::SimpleStructOperationOutput).
        1316  +
        /// /* ServerBuilderGenerator.kt:260 */
  736   1317   
        /// The builder fails to construct a [`SimpleStructOperationOutput`](crate::output::SimpleStructOperationOutput) if a [`ConstraintViolation`] occurs.
  737   1318   
        ///
  738         -
        /// If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
        1319  +
        /// /* ServerBuilderGenerator.kt:268 */If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
        1320  +
        /* ServerBuilderGenerator.kt:271 */
  739   1321   
        pub fn build(
  740   1322   
            self,
  741   1323   
        ) -> Result<crate::output::SimpleStructOperationOutput, ConstraintViolation> {
  742   1324   
            self.build_enforcing_all_constraints()
  743   1325   
        }
        1326  +
        /* ServerBuilderGenerator.kt:283 */
  744   1327   
        fn build_enforcing_all_constraints(
  745   1328   
            self,
  746   1329   
        ) -> Result<crate::output::SimpleStructOperationOutput, ConstraintViolation> {
  747         -
            Ok(crate::output::SimpleStructOperationOutput {
  748         -
                blob: self.blob,
  749         -
                boolean: self.boolean,
  750         -
                string: self.string,
  751         -
                byte: self.byte,
  752         -
                short: self.short,
  753         -
                integer: self.integer,
  754         -
                long: self.long,
  755         -
                float: self.float,
  756         -
                double: self.double,
  757         -
                timestamp: self.timestamp,
  758         -
                r#enum: self.r#enum,
  759         -
                required_blob: self
  760         -
                    .required_blob
  761         -
                    .ok_or(ConstraintViolation::MissingRequiredBlob)?,
  762         -
                required_boolean: self
  763         -
                    .required_boolean
  764         -
                    .ok_or(ConstraintViolation::MissingRequiredBoolean)?,
  765         -
                required_string: self
  766         -
                    .required_string
  767         -
                    .ok_or(ConstraintViolation::MissingRequiredString)?,
  768         -
                required_byte: self
  769         -
                    .required_byte
  770         -
                    .ok_or(ConstraintViolation::MissingRequiredByte)?,
  771         -
                required_short: self
  772         -
                    .required_short
  773         -
                    .ok_or(ConstraintViolation::MissingRequiredShort)?,
  774         -
                required_integer: self
  775         -
                    .required_integer
  776         -
                    .ok_or(ConstraintViolation::MissingRequiredInteger)?,
  777         -
                required_long: self
  778         -
                    .required_long
  779         -
                    .ok_or(ConstraintViolation::MissingRequiredLong)?,
  780         -
                required_float: self
  781         -
                    .required_float
  782         -
                    .ok_or(ConstraintViolation::MissingRequiredFloat)?,
  783         -
                required_double: self
  784         -
                    .required_double
  785         -
                    .ok_or(ConstraintViolation::MissingRequiredDouble)?,
  786         -
                required_timestamp: self
  787         -
                    .required_timestamp
  788         -
                    .ok_or(ConstraintViolation::MissingRequiredTimestamp)?,
  789         -
                required_enum: self
  790         -
                    .required_enum
  791         -
                    .ok_or(ConstraintViolation::MissingRequiredEnum)?,
  792         -
            })
        1330  +
            /* ServerBuilderGenerator.kt:287 */
        1331  +
            Ok(
        1332  +
                /* ServerBuilderGenerator.kt:542 */
        1333  +
                crate::output::SimpleStructOperationOutput {
        1334  +
                    /* ServerBuilderGenerator.kt:546 */
        1335  +
                    blob: self.blob,
        1336  +
                    /* ServerBuilderGenerator.kt:546 */
        1337  +
                    boolean: self.boolean,
        1338  +
                    /* ServerBuilderGenerator.kt:546 */
        1339  +
                    string: self.string,
        1340  +
                    /* ServerBuilderGenerator.kt:546 */
        1341  +
                    byte: self.byte,
        1342  +
                    /* ServerBuilderGenerator.kt:546 */
        1343  +
                    short: self.short,
        1344  +
                    /* ServerBuilderGenerator.kt:546 */
        1345  +
                    integer: self.integer,
        1346  +
                    /* ServerBuilderGenerator.kt:546 */
        1347  +
                    long: self.long,
        1348  +
                    /* ServerBuilderGenerator.kt:546 */
        1349  +
                    float: self.float,
        1350  +
                    /* ServerBuilderGenerator.kt:546 */
        1351  +
                    double: self.double,
        1352  +
                    /* ServerBuilderGenerator.kt:546 */
        1353  +
                    timestamp: self.timestamp,
        1354  +
                    /* ServerBuilderGenerator.kt:546 */
        1355  +
                    r#enum: self.r#enum,
        1356  +
                    /* ServerBuilderGenerator.kt:546 */
        1357  +
                    required_blob: self
        1358  +
                        .required_blob
        1359  +
                        /* ServerBuilderGenerator.kt:569 */
        1360  +
                        .ok_or(ConstraintViolation::MissingRequiredBlob)?,
        1361  +
                    /* ServerBuilderGenerator.kt:546 */
        1362  +
                    required_boolean: self
        1363  +
                        .required_boolean
        1364  +
                        /* ServerBuilderGenerator.kt:569 */
        1365  +
                        .ok_or(ConstraintViolation::MissingRequiredBoolean)?,
        1366  +
                    /* ServerBuilderGenerator.kt:546 */
        1367  +
                    required_string: self
        1368  +
                        .required_string
        1369  +
                        /* ServerBuilderGenerator.kt:569 */
        1370  +
                        .ok_or(ConstraintViolation::MissingRequiredString)?,
        1371  +
                    /* ServerBuilderGenerator.kt:546 */
        1372  +
                    required_byte: self
        1373  +
                        .required_byte
        1374  +
                        /* ServerBuilderGenerator.kt:569 */
        1375  +
                        .ok_or(ConstraintViolation::MissingRequiredByte)?,
        1376  +
                    /* ServerBuilderGenerator.kt:546 */
        1377  +
                    required_short: self
        1378  +
                        .required_short
        1379  +
                        /* ServerBuilderGenerator.kt:569 */
        1380  +
                        .ok_or(ConstraintViolation::MissingRequiredShort)?,
        1381  +
                    /* ServerBuilderGenerator.kt:546 */
        1382  +
                    required_integer: self
        1383  +
                        .required_integer
        1384  +
                        /* ServerBuilderGenerator.kt:569 */
        1385  +
                        .ok_or(ConstraintViolation::MissingRequiredInteger)?,
        1386  +
                    /* ServerBuilderGenerator.kt:546 */
        1387  +
                    required_long: self
        1388  +
                        .required_long
        1389  +
                        /* ServerBuilderGenerator.kt:569 */
        1390  +
                        .ok_or(ConstraintViolation::MissingRequiredLong)?,
        1391  +
                    /* ServerBuilderGenerator.kt:546 */
        1392  +
                    required_float: self
        1393  +
                        .required_float
        1394  +
                        /* ServerBuilderGenerator.kt:569 */
        1395  +
                        .ok_or(ConstraintViolation::MissingRequiredFloat)?,
        1396  +
                    /* ServerBuilderGenerator.kt:546 */
        1397  +
                    required_double: self
        1398  +
                        .required_double
        1399  +
                        /* ServerBuilderGenerator.kt:569 */
        1400  +
                        .ok_or(ConstraintViolation::MissingRequiredDouble)?,
        1401  +
                    /* ServerBuilderGenerator.kt:546 */
        1402  +
                    required_timestamp: self
        1403  +
                        .required_timestamp
        1404  +
                        /* ServerBuilderGenerator.kt:569 */
        1405  +
                        .ok_or(ConstraintViolation::MissingRequiredTimestamp)?,
        1406  +
                    /* ServerBuilderGenerator.kt:546 */
        1407  +
                    required_enum: self
        1408  +
                        .required_enum
        1409  +
                        /* ServerBuilderGenerator.kt:569 */
        1410  +
                        .ok_or(ConstraintViolation::MissingRequiredEnum)?,
        1411  +
                    /* ServerBuilderGenerator.kt:542 */
        1412  +
                }, /* ServerBuilderGenerator.kt:287 */
        1413  +
            )
        1414  +
            /* ServerBuilderGenerator.kt:283 */
  793   1415   
        }
        1416  +
        /* ServerBuilderGenerator.kt:215 */
  794   1417   
    }
        1418  +
        1419  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  795   1420   
}