Server Test

Server Test

rev. 1661690c47759989ca94986fb8d3e5132fc72dc5

Files changed:

tmp-codegen-diff/codegen-server-test/.cargo/config.toml

@@ -1,1 +0,2 @@
    1      1   
[build]
    2         -
rustflags = ["--cfg", "aws_sdk_unstable"]
              \
 No newline at end of file
           2  +
rustflags = ["--deny", "warnings", "--cfg", "aws_sdk_unstable"]

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

@@ -28,28 +88,87 @@
   48     48   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   49     49   
        let fut = async move {
   50     50   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
   51     51   
                request.headers(),
   52     52   
                &CONTENT_TYPE_EVENTSTREAMSOPERATION,
   53     53   
            ) {
   54     54   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
   55     55   
            }
   56     56   
            crate::protocol_serde::shape_event_streams_operation::de_event_streams_operation_http_request(request)
   57     57   
                            .await
   58         -
                            .map_err(Into::into)
   59     58   
        };
   60     59   
        use ::futures_util::future::TryFutureExt;
   61     60   
        let fut = fut.map_err(
   62     61   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
   63     62   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   64     63   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
   65     64   
                    e,
   66     65   
                )
   67     66   
            },
   68     67   
        );
@@ -129,128 +189,187 @@
  149    148   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  150    149   
        let fut = async move {
  151    150   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  152    151   
                request.headers(),
  153    152   
                &CONTENT_TYPE_STREAMINGBLOBOPERATION,
  154    153   
            ) {
  155    154   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  156    155   
            }
  157    156   
            crate::protocol_serde::shape_streaming_blob_operation::de_streaming_blob_operation_http_request(request)
  158    157   
                            .await
  159         -
                            .map_err(Into::into)
  160    158   
        };
  161    159   
        use ::futures_util::future::TryFutureExt;
  162    160   
        let fut = fut.map_err(
  163    161   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  164    162   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  165    163   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  166    164   
                    e,
  167    165   
                )
  168    166   
            },
  169    167   
        );
@@ -204,202 +264,261 @@
  224    222   
    ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection:
  225    223   
        From<<B as ::aws_smithy_http_server::body::HttpBody>::Error>,
  226    224   
{
  227    225   
    type Rejection = ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError;
  228    226   
    type Future = NonStreamingBlobOperationInputFuture;
  229    227   
  230    228   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  231    229   
        let fut = async move {
  232    230   
            crate::protocol_serde::shape_non_streaming_blob_operation::de_non_streaming_blob_operation_http_request(request)
  233    231   
                            .await
  234         -
                            .map_err(Into::into)
  235    232   
        };
  236    233   
        use ::futures_util::future::TryFutureExt;
  237    234   
        let fut = fut.map_err(
  238    235   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  239    236   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  240    237   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  241    238   
                    e,
  242    239   
                )
  243    240   
            },
  244    241   
        );
@@ -287,284 +347,343 @@
  307    304   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  308    305   
        let fut = async move {
  309    306   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  310    307   
                request.headers(),
  311    308   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFENUMSTRINGOPERATION,
  312    309   
            ) {
  313    310   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  314    311   
            }
  315    312   
            crate::protocol_serde::shape_query_params_targeting_map_of_enum_string_operation::de_query_params_targeting_map_of_enum_string_operation_http_request(request)
  316    313   
                            .await
  317         -
                            .map_err(Into::into)
  318    314   
        };
  319    315   
        use ::futures_util::future::TryFutureExt;
  320    316   
        let fut = fut.map_err(
  321    317   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  322    318   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  323    319   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  324    320   
                    e,
  325    321   
                )
  326    322   
            },
  327    323   
        );
@@ -388,384 +448,443 @@
  408    404   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  409    405   
        let fut = async move {
  410    406   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  411    407   
                request.headers(),
  412    408   
                &CONTENT_TYPE_HTTPPREFIXHEADERSTARGETINGLENGTHMAPOPERATION,
  413    409   
            ) {
  414    410   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  415    411   
            }
  416    412   
            crate::protocol_serde::shape_http_prefix_headers_targeting_length_map_operation::de_http_prefix_headers_targeting_length_map_operation_http_request(request)
  417    413   
                            .await
  418         -
                            .map_err(Into::into)
  419    414   
        };
  420    415   
        use ::futures_util::future::TryFutureExt;
  421    416   
        let fut = fut.map_err(
  422    417   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  423    418   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  424    419   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  425    420   
                    e,
  426    421   
                )
  427    422   
            },
  428    423   
        );
@@ -491,486 +551,545 @@
  511    506   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  512    507   
        let fut = async move {
  513    508   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  514    509   
                request.headers(),
  515    510   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFLENGTHPATTERNSTRINGOPERATION,
  516    511   
            ) {
  517    512   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  518    513   
            }
  519    514   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_length_pattern_string_operation::de_query_params_targeting_map_of_list_of_length_pattern_string_operation_http_request(request)
  520    515   
                            .await
  521         -
                            .map_err(Into::into)
  522    516   
        };
  523    517   
        use ::futures_util::future::TryFutureExt;
  524    518   
        let fut = fut.map_err(
  525    519   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  526    520   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  527    521   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  528    522   
                    e,
  529    523   
                )
  530    524   
            },
  531    525   
        );
@@ -592,586 +652,645 @@
  612    606   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  613    607   
        let fut = async move {
  614    608   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  615    609   
                request.headers(),
  616    610   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLENGTHPATTERNSTRINGOPERATION,
  617    611   
            ) {
  618    612   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  619    613   
            }
  620    614   
            crate::protocol_serde::shape_query_params_targeting_map_of_length_pattern_string_operation::de_query_params_targeting_map_of_length_pattern_string_operation_http_request(request)
  621    615   
                            .await
  622         -
                            .map_err(Into::into)
  623    616   
        };
  624    617   
        use ::futures_util::future::TryFutureExt;
  625    618   
        let fut = fut.map_err(
  626    619   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  627    620   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  628    621   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  629    622   
                    e,
  630    623   
                )
  631    624   
            },
  632    625   
        );
@@ -693,686 +753,745 @@
  713    706   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  714    707   
        let fut = async move {
  715    708   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  716    709   
                request.headers(),
  717    710   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFPATTERNSTRINGOPERATION,
  718    711   
            ) {
  719    712   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  720    713   
            }
  721    714   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_pattern_string_operation::de_query_params_targeting_map_of_list_of_pattern_string_operation_http_request(request)
  722    715   
                            .await
  723         -
                            .map_err(Into::into)
  724    716   
        };
  725    717   
        use ::futures_util::future::TryFutureExt;
  726    718   
        let fut = fut.map_err(
  727    719   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  728    720   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  729    721   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  730    722   
                    e,
  731    723   
                )
  732    724   
            },
  733    725   
        );
@@ -794,786 +854,845 @@
  814    806   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  815    807   
        let fut = async move {
  816    808   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  817    809   
                request.headers(),
  818    810   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFPATTERNSTRINGOPERATION,
  819    811   
            ) {
  820    812   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  821    813   
            }
  822    814   
            crate::protocol_serde::shape_query_params_targeting_map_of_pattern_string_operation::de_query_params_targeting_map_of_pattern_string_operation_http_request(request)
  823    815   
                            .await
  824         -
                            .map_err(Into::into)
  825    816   
        };
  826    817   
        use ::futures_util::future::TryFutureExt;
  827    818   
        let fut = fut.map_err(
  828    819   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  829    820   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  830    821   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  831    822   
                    e,
  832    823   
                )
  833    824   
            },
  834    825   
        );
@@ -895,886 +955,945 @@
  915    906   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  916    907   
        let fut = async move {
  917    908   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  918    909   
                request.headers(),
  919    910   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFENUMSTRINGOPERATION,
  920    911   
            ) {
  921    912   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  922    913   
            }
  923    914   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_enum_string_operation::de_query_params_targeting_map_of_list_of_enum_string_operation_http_request(request)
  924    915   
                            .await
  925         -
                            .map_err(Into::into)
  926    916   
        };
  927    917   
        use ::futures_util::future::TryFutureExt;
  928    918   
        let fut = fut.map_err(
  929    919   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  930    920   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  931    921   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  932    922   
                    e,
  933    923   
                )
  934    924   
            },
  935    925   
        );
@@ -998,988 +1058,1047 @@
 1018   1008   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1019   1009   
        let fut = async move {
 1020   1010   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1021   1011   
                request.headers(),
 1022   1012   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLENGTHLISTOFPATTERNSTRINGOPERATION,
 1023   1013   
            ) {
 1024   1014   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1025   1015   
            }
 1026   1016   
            crate::protocol_serde::shape_query_params_targeting_map_of_length_list_of_pattern_string_operation::de_query_params_targeting_map_of_length_list_of_pattern_string_operation_http_request(request)
 1027   1017   
                            .await
 1028         -
                            .map_err(Into::into)
 1029   1018   
        };
 1030   1019   
        use ::futures_util::future::TryFutureExt;
 1031   1020   
        let fut = fut.map_err(
 1032   1021   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1033   1022   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1034   1023   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1035   1024   
                    e,
 1036   1025   
                )
 1037   1026   
            },
 1038   1027   
        );
@@ -1099,1088 +1159,1147 @@
 1119   1108   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1120   1109   
        let fut = async move {
 1121   1110   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1122   1111   
                request.headers(),
 1123   1112   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFSETOFLENGTHSTRINGOPERATION,
 1124   1113   
            ) {
 1125   1114   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1126   1115   
            }
 1127   1116   
            crate::protocol_serde::shape_query_params_targeting_map_of_set_of_length_string_operation::de_query_params_targeting_map_of_set_of_length_string_operation_http_request(request)
 1128   1117   
                            .await
 1129         -
                            .map_err(Into::into)
 1130   1118   
        };
 1131   1119   
        use ::futures_util::future::TryFutureExt;
 1132   1120   
        let fut = fut.map_err(
 1133   1121   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1134   1122   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1135   1123   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1136   1124   
                    e,
 1137   1125   
                )
 1138   1126   
            },
 1139   1127   
        );
@@ -1200,1188 +1260,1247 @@
 1220   1208   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1221   1209   
        let fut = async move {
 1222   1210   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1223   1211   
                request.headers(),
 1224   1212   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFLENGTHSTRINGOPERATION,
 1225   1213   
            ) {
 1226   1214   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1227   1215   
            }
 1228   1216   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_length_string_operation::de_query_params_targeting_map_of_list_of_length_string_operation_http_request(request)
 1229   1217   
                            .await
 1230         -
                            .map_err(Into::into)
 1231   1218   
        };
 1232   1219   
        use ::futures_util::future::TryFutureExt;
 1233   1220   
        let fut = fut.map_err(
 1234   1221   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1235   1222   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1236   1223   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1237   1224   
                    e,
 1238   1225   
                )
 1239   1226   
            },
 1240   1227   
        );
@@ -1301,1288 +1361,1347 @@
 1321   1308   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1322   1309   
        let fut = async move {
 1323   1310   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1324   1311   
                request.headers(),
 1325   1312   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLENGTHSTRINGOPERATION,
 1326   1313   
            ) {
 1327   1314   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1328   1315   
            }
 1329   1316   
            crate::protocol_serde::shape_query_params_targeting_map_of_length_string_operation::de_query_params_targeting_map_of_length_string_operation_http_request(request)
 1330   1317   
                            .await
 1331         -
                            .map_err(Into::into)
 1332   1318   
        };
 1333   1319   
        use ::futures_util::future::TryFutureExt;
 1334   1320   
        let fut = fut.map_err(
 1335   1321   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1336   1322   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1337   1323   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1338   1324   
                    e,
 1339   1325   
                )
 1340   1326   
            },
 1341   1327   
        );
@@ -1401,1387 +1461,1446 @@
 1421   1407   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1422   1408   
        let fut = async move {
 1423   1409   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1424   1410   
                request.headers(),
 1425   1411   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGLENGTHMAPOPERATION,
 1426   1412   
            ) {
 1427   1413   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1428   1414   
            }
 1429   1415   
            crate::protocol_serde::shape_query_params_targeting_length_map_operation::de_query_params_targeting_length_map_operation_http_request(request)
 1430   1416   
                            .await
 1431         -
                            .map_err(Into::into)
 1432   1417   
        };
 1433   1418   
        use ::futures_util::future::TryFutureExt;
 1434   1419   
        let fut = fut.map_err(
 1435   1420   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1436   1421   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1437   1422   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1438   1423   
                    e,
 1439   1424   
                )
 1440   1425   
            },
 1441   1426   
        );
@@ -1501,1486 +1561,1545 @@
 1521   1506   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1522   1507   
        let fut = async move {
 1523   1508   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1524   1509   
                request.headers(),
 1525   1510   
                &CONTENT_TYPE_CONSTRAINEDRECURSIVESHAPESOPERATION,
 1526   1511   
            ) {
 1527   1512   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1528   1513   
            }
 1529   1514   
            crate::protocol_serde::shape_constrained_recursive_shapes_operation::de_constrained_recursive_shapes_operation_http_request(request)
 1530   1515   
                            .await
 1531         -
                            .map_err(Into::into)
 1532   1516   
        };
 1533   1517   
        use ::futures_util::future::TryFutureExt;
 1534   1518   
        let fut = fut.map_err(
 1535   1519   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1536   1520   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1537   1521   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1538   1522   
                    e,
 1539   1523   
                )
 1540   1524   
            },
 1541   1525   
        );
@@ -1602,1586 +1662,1645 @@
 1622   1606   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1623   1607   
        let fut = async move {
 1624   1608   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1625   1609   
                request.headers(),
 1626   1610   
                &CONTENT_TYPE_CONSTRAINEDHTTPPAYLOADBOUNDSHAPEOPERATION,
 1627   1611   
            ) {
 1628   1612   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1629   1613   
            }
 1630   1614   
            crate::protocol_serde::shape_constrained_http_payload_bound_shape_operation::de_constrained_http_payload_bound_shape_operation_http_request(request)
 1631   1615   
                            .await
 1632         -
                            .map_err(Into::into)
 1633   1616   
        };
 1634   1617   
        use ::futures_util::future::TryFutureExt;
 1635   1618   
        let fut = fut.map_err(
 1636   1619   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1637   1620   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1638   1621   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1639   1622   
                    e,
 1640   1623   
                )
 1641   1624   
            },
 1642   1625   
        );
@@ -1702,1685 +1762,1744 @@
 1722   1705   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1723   1706   
        let fut = async move {
 1724   1707   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1725   1708   
                request.headers(),
 1726   1709   
                &CONTENT_TYPE_CONSTRAINEDHTTPBOUNDSHAPESOPERATION,
 1727   1710   
            ) {
 1728   1711   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1729   1712   
            }
 1730   1713   
            crate::protocol_serde::shape_constrained_http_bound_shapes_operation::de_constrained_http_bound_shapes_operation_http_request(request)
 1731   1714   
                            .await
 1732         -
                            .map_err(Into::into)
 1733   1715   
        };
 1734   1716   
        use ::futures_util::future::TryFutureExt;
 1735   1717   
        let fut = fut.map_err(
 1736   1718   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1737   1719   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1738   1720   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1739   1721   
                    e,
 1740   1722   
                )
 1741   1723   
            },
 1742   1724   
        );
@@ -1802,1784 +1862,1843 @@
 1822   1804   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1823   1805   
        let fut = async move {
 1824   1806   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1825   1807   
                request.headers(),
 1826   1808   
                &CONTENT_TYPE_CONSTRAINEDSHAPESONLYINOUTPUTOPERATION,
 1827   1809   
            ) {
 1828   1810   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1829   1811   
            }
 1830   1812   
            crate::protocol_serde::shape_constrained_shapes_only_in_output_operation::de_constrained_shapes_only_in_output_operation_http_request(request)
 1831   1813   
                            .await
 1832         -
                            .map_err(Into::into)
 1833   1814   
        };
 1834   1815   
        use ::futures_util::future::TryFutureExt;
 1835   1816   
        let fut = fut.map_err(
 1836   1817   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1837   1818   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1838   1819   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1839   1820   
                    e,
 1840   1821   
                )
 1841   1822   
            },
 1842   1823   
        );
@@ -1884,1865 +1944,1924 @@
 1904   1885   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1905   1886   
        let fut = async move {
 1906   1887   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1907   1888   
                request.headers(),
 1908   1889   
                &CONTENT_TYPE_CONSTRAINEDSHAPESOPERATION,
 1909   1890   
            ) {
 1910   1891   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1911   1892   
            }
 1912   1893   
            crate::protocol_serde::shape_constrained_shapes_operation::de_constrained_shapes_operation_http_request(request)
 1913   1894   
                            .await
 1914         -
                            .map_err(Into::into)
 1915   1895   
        };
 1916   1896   
        use ::futures_util::future::TryFutureExt;
 1917   1897   
        let fut = fut.map_err(
 1918   1898   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1919   1899   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1920   1900   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1921   1901   
                    e,
 1922   1902   
                )
 1923   1903   
            },
 1924   1904   
        );

tmp-codegen-diff/codegen-server-test/constraints/rust-server-codegen/src/protocol_serde/shape_constrained_http_bound_shapes_operation.rs

@@ -101,101 +177,177 @@
  121    121   
                ::nom::sequence::preceded(
  122    122   
                    ::nom::bytes::complete::tag("/"),
  123    123   
                    ::nom::branch::alt::<_, _, ::nom::error::Error<&str>, _>((
  124    124   
                        ::nom::bytes::complete::take_until("/"),
  125    125   
                        ::nom::combinator::rest,
  126    126   
                    )),
  127    127   
                ),
  128    128   
            ))(input_string)?;
  129    129   
        debug_assert_eq!("", input_string);
  130    130   
        input = input.set_range_integer_label(
  131         -
                                        crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_integer_label(m1)?
  132         -
                                    );
         131  +
                                    crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_integer_label(m1)?
         132  +
                                );
  133    133   
        input = input.set_range_short_label(
  134         -
                                        crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_short_label(m2)?
  135         -
                                    );
         134  +
                                    crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_short_label(m2)?
         135  +
                                );
  136    136   
        input = input.set_range_long_label(
  137         -
                                        crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_long_label(m3)?
  138         -
                                    );
         137  +
                                    crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_long_label(m3)?
         138  +
                                );
  139    139   
        input = input.set_range_byte_label(
  140         -
                                        crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_byte_label(m4)?
  141         -
                                    );
         140  +
                                    crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_byte_label(m4)?
         141  +
                                );
  142    142   
        input = input.set_length_string_label(
  143         -
                                        crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_length_string_label(m5)?
  144         -
                                    );
         143  +
                                    crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_length_string_label(m5)?
         144  +
                                );
  145    145   
        input = input.set_enum_string_label(
  146         -
                                        crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_enum_string_label(m6)?
  147         -
                                    );
         146  +
                                    crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_enum_string_label(m6)?
         147  +
                                );
  148    148   
        let query_string = uri.query().unwrap_or("");
  149    149   
        let pairs = ::form_urlencoded::parse(query_string.as_bytes());
  150    150   
        let mut enum_string_query_seen = false;
  151    151   
        let mut length_string_query_seen = false;
  152    152   
        let mut range_byte_query_seen = false;
  153    153   
        let mut range_integer_query_seen = false;
  154    154   
        let mut range_long_query_seen = false;
  155    155   
        let mut range_short_query_seen = false;
  156    156   
        let mut enum_string_list_query = Vec::new();
  157    157   
        let mut length_list_pattern_string_query = Vec::new();

tmp-codegen-diff/codegen-server-test/constraints_without_public_constrained_types/rust-server-codegen/src/error.rs

@@ -1045,1045 +1105,1104 @@
 1065   1065   
                message_content: self.message_content,
 1066   1066   
            }
 1067   1067   
        }
 1068   1068   
    }
 1069   1069   
}
 1070   1070   
/// See [`ValidationException`](crate::error::ValidationException).
 1071   1071   
pub mod validation_exception {
 1072   1072   
 1073   1073   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1074   1074   
    /// Holds one variant for each of the ways the builder can fail.
 1075         -
 1076   1075   
    #[allow(clippy::enum_variant_names)]
 1077   1076   
    pub enum ConstraintViolation {
 1078   1077   
        /// `message` was not provided but it is required when building `ValidationException`.
 1079   1078   
        MissingMessage,
 1080   1079   
    }
 1081   1080   
    impl ::std::fmt::Display for ConstraintViolation {
 1082   1081   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1083   1082   
            match self {
 1084   1083   
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationException`"),
 1085   1084   
            }

tmp-codegen-diff/codegen-server-test/constraints_without_public_constrained_types/rust-server-codegen/src/input.rs

@@ -923,923 +983,982 @@
  943    943   
                events: self.events.ok_or(ConstraintViolation::MissingEvents)?,
  944    944   
            })
  945    945   
        }
  946    946   
    }
  947    947   
}
  948    948   
/// See [`EventStreamsOperationInput`](crate::input::EventStreamsOperationInput).
  949    949   
pub mod event_streams_operation_input {
  950    950   
  951    951   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
  952    952   
    /// Holds one variant for each of the ways the builder can fail.
  953         -
  954    953   
    #[allow(clippy::enum_variant_names)]
  955    954   
    pub enum ConstraintViolation {
  956    955   
        /// `events` was not provided but it is required when building `EventStreamsOperationInput`.
  957    956   
        MissingEvents,
  958    957   
    }
  959    958   
    impl ::std::fmt::Display for ConstraintViolation {
  960    959   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  961    960   
            match self {
  962    961   
                ConstraintViolation::MissingEvents => write!(f, "`events` was not provided but it is required when building `EventStreamsOperationInput`"),
  963    962   
            }
@@ -3273,3272 +3333,3331 @@
 3293   3292   
                    .ok_or(ConstraintViolation::MissingRecursiveList)?,
 3294   3293   
            })
 3295   3294   
        }
 3296   3295   
    }
 3297   3296   
}
 3298   3297   
/// See [`ConstrainedRecursiveShapesOperationInput`](crate::input::ConstrainedRecursiveShapesOperationInput).
 3299   3298   
pub mod constrained_recursive_shapes_operation_input {
 3300   3299   
 3301   3300   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 3302   3301   
    /// Holds one variant for each of the ways the builder can fail.
 3303         -
 3304   3302   
    #[allow(clippy::enum_variant_names)]
 3305   3303   
    pub enum ConstraintViolation {
 3306   3304   
        /// `recursive_list` was not provided but it is required when building `ConstrainedRecursiveShapesOperationInput`.
 3307   3305   
        MissingRecursiveList,
 3308   3306   
    }
 3309   3307   
    impl ::std::fmt::Display for ConstraintViolation {
 3310   3308   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3311   3309   
            match self {
 3312   3310   
                ConstraintViolation::MissingRecursiveList => write!(f, "`recursive_list` was not provided but it is required when building `ConstrainedRecursiveShapesOperationInput`"),
 3313   3311   
            }
@@ -3468,3466 +3528,3525 @@
 3488   3486   
                },
 3489   3487   
            )
 3490   3488   
        }
 3491   3489   
    }
 3492   3490   
}
 3493   3491   
/// See [`ConstrainedHttpPayloadBoundShapeOperationInput`](crate::input::ConstrainedHttpPayloadBoundShapeOperationInput).
 3494   3492   
pub mod constrained_http_payload_bound_shape_operation_input {
 3495   3493   
 3496   3494   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 3497   3495   
    /// Holds one variant for each of the ways the builder can fail.
 3498         -
 3499   3496   
    #[allow(clippy::enum_variant_names)]
 3500   3497   
    pub enum ConstraintViolation {
 3501   3498   
        /// `http_payload_bound_constrained_shape` was not provided but it is required when building `ConstrainedHttpPayloadBoundShapeOperationInput`.
 3502   3499   
        MissingHttpPayloadBoundConstrainedShape,
 3503   3500   
    }
 3504   3501   
    impl ::std::fmt::Display for ConstraintViolation {
 3505   3502   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3506   3503   
            match self {
 3507   3504   
                ConstraintViolation::MissingHttpPayloadBoundConstrainedShape => write!(f, "`http_payload_bound_constrained_shape` was not provided but it is required when building `ConstrainedHttpPayloadBoundShapeOperationInput`"),
 3508   3505   
            }
@@ -4738,4735 +4798,4794 @@
 4758   4755   
                    .transpose()?,
 4759   4756   
            })
 4760   4757   
        }
 4761   4758   
    }
 4762   4759   
}
 4763   4760   
/// See [`ConstrainedHttpBoundShapesOperationInput`](crate::input::ConstrainedHttpBoundShapesOperationInput).
 4764   4761   
pub mod constrained_http_bound_shapes_operation_input {
 4765   4762   
 4766   4763   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 4767   4764   
    /// Holds one variant for each of the ways the builder can fail.
 4768         -
 4769   4765   
    #[allow(clippy::enum_variant_names)]
 4770   4766   
    pub enum ConstraintViolation {
 4771   4767   
        /// `length_string_label` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationInput`.
 4772   4768   
        MissingLengthStringLabel,
 4773   4769   
        /// `enum_string_label` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationInput`.
 4774   4770   
        MissingEnumStringLabel,
 4775   4771   
        /// `length_string_header_map` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationInput`.
 4776   4772   
        MissingLengthStringHeaderMap,
 4777   4773   
    }
 4778   4774   
    impl ::std::fmt::Display for ConstraintViolation {
@@ -5351,5347 +5411,5406 @@
 5371   5367   
                    .ok_or(ConstraintViolation::MissingConA)?,
 5372   5368   
            })
 5373   5369   
        }
 5374   5370   
    }
 5375   5371   
}
 5376   5372   
/// See [`ConstrainedShapesOperationInput`](crate::input::ConstrainedShapesOperationInput).
 5377   5373   
pub mod constrained_shapes_operation_input {
 5378   5374   
 5379   5375   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 5380   5376   
    /// Holds one variant for each of the ways the builder can fail.
 5381         -
 5382   5377   
    #[allow(clippy::enum_variant_names)]
 5383   5378   
    pub enum ConstraintViolation {
 5384   5379   
        /// `con_a` was not provided but it is required when building `ConstrainedShapesOperationInput`.
 5385   5380   
        MissingConA,
 5386   5381   
    }
 5387   5382   
    impl ::std::fmt::Display for ConstraintViolation {
 5388   5383   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5389   5384   
            match self {
 5390   5385   
                ConstraintViolation::MissingConA => write!(f, "`con_a` was not provided but it is required when building `ConstrainedShapesOperationInput`"),
 5391   5386   
            }

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

@@ -4222,4222 +4282,4281 @@
 4242   4242   
    fn from(value: ConstrainedListInOutput) -> Self {
 4243   4243   
        value.into_inner()
 4244   4244   
    }
 4245   4245   
}
 4246   4246   
 4247   4247   
/// See [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 4248   4248   
pub mod validation_exception_field {
 4249   4249   
 4250   4250   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 4251   4251   
    /// Holds one variant for each of the ways the builder can fail.
 4252         -
 4253   4252   
    #[allow(clippy::enum_variant_names)]
 4254   4253   
    pub enum ConstraintViolation {
 4255   4254   
        /// `path` was not provided but it is required when building `ValidationExceptionField`.
 4256   4255   
        MissingPath,
 4257   4256   
        /// `message` was not provided but it is required when building `ValidationExceptionField`.
 4258   4257   
        MissingMessage,
 4259   4258   
    }
 4260   4259   
    impl ::std::fmt::Display for ConstraintViolation {
 4261   4260   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4262   4261   
            match self {
@@ -5347,5346 +5407,5405 @@
 5367   5366   
                    .ok_or(ConstraintViolation::MissingRecursiveMember)?,
 5368   5367   
            })
 5369   5368   
        }
 5370   5369   
    }
 5371   5370   
}
 5372   5371   
/// See [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 5373   5372   
pub mod recursive_shapes_input_output_nested1 {
 5374   5373   
 5375   5374   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 5376   5375   
    /// Holds one variant for each of the ways the builder can fail.
 5377         -
 5378   5376   
    #[allow(clippy::enum_variant_names)]
 5379   5377   
    pub enum ConstraintViolation {
 5380   5378   
        /// `recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`.
 5381   5379   
        MissingRecursiveMember,
 5382   5380   
    }
 5383   5381   
    impl ::std::fmt::Display for ConstraintViolation {
 5384   5382   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5385   5383   
            match self {
 5386   5384   
                ConstraintViolation::MissingRecursiveMember => write!(f, "`recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`"),
 5387   5385   
            }
@@ -7490,7488 +7550,7547 @@
 7510   7508   
                    .map(|v: crate::model::LengthSetOfPatternString| v.into()),
 7511   7509   
            })
 7512   7510   
        }
 7513   7511   
    }
 7514   7512   
}
 7515   7513   
/// See [`ConA`](crate::model::ConA).
 7516   7514   
pub mod con_a {
 7517   7515   
 7518   7516   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 7519   7517   
    /// Holds one variant for each of the ways the builder can fail.
 7520         -
 7521   7518   
    #[allow(clippy::enum_variant_names)]
 7522   7519   
    pub enum ConstraintViolation {
 7523   7520   
        /// `con_b` was not provided but it is required when building `ConA`.
 7524   7521   
        MissingConB,
 7525   7522   
    }
 7526   7523   
    impl ::std::fmt::Display for ConstraintViolation {
 7527   7524   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 7528   7525   
            match self {
 7529   7526   
                ConstraintViolation::MissingConB => write!(
 7530   7527   
                    f,
@@ -9502,9499 +9562,9558 @@
 9522   9519   
                opt_int: self.opt_int,
 9523   9520   
            })
 9524   9521   
        }
 9525   9522   
    }
 9526   9523   
}
 9527   9524   
/// See [`ConB`](crate::model::ConB).
 9528   9525   
pub mod con_b {
 9529   9526   
 9530   9527   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 9531   9528   
    /// Holds one variant for each of the ways the builder can fail.
 9532         -
 9533   9529   
    #[allow(clippy::enum_variant_names)]
 9534   9530   
    pub enum ConstraintViolation {
 9535   9531   
        /// `nice` was not provided but it is required when building `ConB`.
 9536   9532   
        MissingNice,
 9537   9533   
        /// `int` was not provided but it is required when building `ConB`.
 9538   9534   
        MissingInt,
 9539   9535   
    }
 9540   9536   
    impl ::std::fmt::Display for ConstraintViolation {
 9541   9537   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9542   9538   
            match self {

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

@@ -28,28 +88,87 @@
   48     48   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   49     49   
        let fut = async move {
   50     50   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
   51     51   
                request.headers(),
   52     52   
                &CONTENT_TYPE_EVENTSTREAMSOPERATION,
   53     53   
            ) {
   54     54   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
   55     55   
            }
   56     56   
            crate::protocol_serde::shape_event_streams_operation::de_event_streams_operation_http_request(request)
   57     57   
                            .await
   58         -
                            .map_err(Into::into)
   59     58   
        };
   60     59   
        use ::futures_util::future::TryFutureExt;
   61     60   
        let fut = fut.map_err(
   62     61   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
   63     62   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   64     63   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
   65     64   
                    e,
   66     65   
                )
   67     66   
            },
   68     67   
        );
@@ -129,128 +189,187 @@
  149    148   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  150    149   
        let fut = async move {
  151    150   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  152    151   
                request.headers(),
  153    152   
                &CONTENT_TYPE_STREAMINGBLOBOPERATION,
  154    153   
            ) {
  155    154   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  156    155   
            }
  157    156   
            crate::protocol_serde::shape_streaming_blob_operation::de_streaming_blob_operation_http_request(request)
  158    157   
                            .await
  159         -
                            .map_err(Into::into)
  160    158   
        };
  161    159   
        use ::futures_util::future::TryFutureExt;
  162    160   
        let fut = fut.map_err(
  163    161   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  164    162   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  165    163   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  166    164   
                    e,
  167    165   
                )
  168    166   
            },
  169    167   
        );
@@ -204,202 +264,261 @@
  224    222   
    ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection:
  225    223   
        From<<B as ::aws_smithy_http_server::body::HttpBody>::Error>,
  226    224   
{
  227    225   
    type Rejection = ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError;
  228    226   
    type Future = NonStreamingBlobOperationInputFuture;
  229    227   
  230    228   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  231    229   
        let fut = async move {
  232    230   
            crate::protocol_serde::shape_non_streaming_blob_operation::de_non_streaming_blob_operation_http_request(request)
  233    231   
                            .await
  234         -
                            .map_err(Into::into)
  235    232   
        };
  236    233   
        use ::futures_util::future::TryFutureExt;
  237    234   
        let fut = fut.map_err(
  238    235   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  239    236   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  240    237   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  241    238   
                    e,
  242    239   
                )
  243    240   
            },
  244    241   
        );
@@ -287,284 +347,343 @@
  307    304   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  308    305   
        let fut = async move {
  309    306   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  310    307   
                request.headers(),
  311    308   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFENUMSTRINGOPERATION,
  312    309   
            ) {
  313    310   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  314    311   
            }
  315    312   
            crate::protocol_serde::shape_query_params_targeting_map_of_enum_string_operation::de_query_params_targeting_map_of_enum_string_operation_http_request(request)
  316    313   
                            .await
  317         -
                            .map_err(Into::into)
  318    314   
        };
  319    315   
        use ::futures_util::future::TryFutureExt;
  320    316   
        let fut = fut.map_err(
  321    317   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  322    318   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  323    319   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  324    320   
                    e,
  325    321   
                )
  326    322   
            },
  327    323   
        );
@@ -388,384 +448,443 @@
  408    404   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  409    405   
        let fut = async move {
  410    406   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  411    407   
                request.headers(),
  412    408   
                &CONTENT_TYPE_HTTPPREFIXHEADERSTARGETINGLENGTHMAPOPERATION,
  413    409   
            ) {
  414    410   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  415    411   
            }
  416    412   
            crate::protocol_serde::shape_http_prefix_headers_targeting_length_map_operation::de_http_prefix_headers_targeting_length_map_operation_http_request(request)
  417    413   
                            .await
  418         -
                            .map_err(Into::into)
  419    414   
        };
  420    415   
        use ::futures_util::future::TryFutureExt;
  421    416   
        let fut = fut.map_err(
  422    417   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  423    418   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  424    419   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  425    420   
                    e,
  426    421   
                )
  427    422   
            },
  428    423   
        );
@@ -491,486 +551,545 @@
  511    506   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  512    507   
        let fut = async move {
  513    508   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  514    509   
                request.headers(),
  515    510   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFLENGTHPATTERNSTRINGOPERATION,
  516    511   
            ) {
  517    512   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  518    513   
            }
  519    514   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_length_pattern_string_operation::de_query_params_targeting_map_of_list_of_length_pattern_string_operation_http_request(request)
  520    515   
                            .await
  521         -
                            .map_err(Into::into)
  522    516   
        };
  523    517   
        use ::futures_util::future::TryFutureExt;
  524    518   
        let fut = fut.map_err(
  525    519   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  526    520   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  527    521   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  528    522   
                    e,
  529    523   
                )
  530    524   
            },
  531    525   
        );
@@ -592,586 +652,645 @@
  612    606   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  613    607   
        let fut = async move {
  614    608   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  615    609   
                request.headers(),
  616    610   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLENGTHPATTERNSTRINGOPERATION,
  617    611   
            ) {
  618    612   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  619    613   
            }
  620    614   
            crate::protocol_serde::shape_query_params_targeting_map_of_length_pattern_string_operation::de_query_params_targeting_map_of_length_pattern_string_operation_http_request(request)
  621    615   
                            .await
  622         -
                            .map_err(Into::into)
  623    616   
        };
  624    617   
        use ::futures_util::future::TryFutureExt;
  625    618   
        let fut = fut.map_err(
  626    619   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  627    620   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  628    621   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  629    622   
                    e,
  630    623   
                )
  631    624   
            },
  632    625   
        );
@@ -693,686 +753,745 @@
  713    706   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  714    707   
        let fut = async move {
  715    708   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  716    709   
                request.headers(),
  717    710   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFPATTERNSTRINGOPERATION,
  718    711   
            ) {
  719    712   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  720    713   
            }
  721    714   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_pattern_string_operation::de_query_params_targeting_map_of_list_of_pattern_string_operation_http_request(request)
  722    715   
                            .await
  723         -
                            .map_err(Into::into)
  724    716   
        };
  725    717   
        use ::futures_util::future::TryFutureExt;
  726    718   
        let fut = fut.map_err(
  727    719   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  728    720   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  729    721   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  730    722   
                    e,
  731    723   
                )
  732    724   
            },
  733    725   
        );
@@ -794,786 +854,845 @@
  814    806   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  815    807   
        let fut = async move {
  816    808   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  817    809   
                request.headers(),
  818    810   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFPATTERNSTRINGOPERATION,
  819    811   
            ) {
  820    812   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  821    813   
            }
  822    814   
            crate::protocol_serde::shape_query_params_targeting_map_of_pattern_string_operation::de_query_params_targeting_map_of_pattern_string_operation_http_request(request)
  823    815   
                            .await
  824         -
                            .map_err(Into::into)
  825    816   
        };
  826    817   
        use ::futures_util::future::TryFutureExt;
  827    818   
        let fut = fut.map_err(
  828    819   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  829    820   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  830    821   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  831    822   
                    e,
  832    823   
                )
  833    824   
            },
  834    825   
        );
@@ -895,886 +955,945 @@
  915    906   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  916    907   
        let fut = async move {
  917    908   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  918    909   
                request.headers(),
  919    910   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFENUMSTRINGOPERATION,
  920    911   
            ) {
  921    912   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  922    913   
            }
  923    914   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_enum_string_operation::de_query_params_targeting_map_of_list_of_enum_string_operation_http_request(request)
  924    915   
                            .await
  925         -
                            .map_err(Into::into)
  926    916   
        };
  927    917   
        use ::futures_util::future::TryFutureExt;
  928    918   
        let fut = fut.map_err(
  929    919   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  930    920   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  931    921   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  932    922   
                    e,
  933    923   
                )
  934    924   
            },
  935    925   
        );
@@ -998,988 +1058,1047 @@
 1018   1008   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1019   1009   
        let fut = async move {
 1020   1010   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1021   1011   
                request.headers(),
 1022   1012   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLENGTHLISTOFPATTERNSTRINGOPERATION,
 1023   1013   
            ) {
 1024   1014   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1025   1015   
            }
 1026   1016   
            crate::protocol_serde::shape_query_params_targeting_map_of_length_list_of_pattern_string_operation::de_query_params_targeting_map_of_length_list_of_pattern_string_operation_http_request(request)
 1027   1017   
                            .await
 1028         -
                            .map_err(Into::into)
 1029   1018   
        };
 1030   1019   
        use ::futures_util::future::TryFutureExt;
 1031   1020   
        let fut = fut.map_err(
 1032   1021   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1033   1022   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1034   1023   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1035   1024   
                    e,
 1036   1025   
                )
 1037   1026   
            },
 1038   1027   
        );
@@ -1099,1088 +1159,1147 @@
 1119   1108   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1120   1109   
        let fut = async move {
 1121   1110   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1122   1111   
                request.headers(),
 1123   1112   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFSETOFLENGTHSTRINGOPERATION,
 1124   1113   
            ) {
 1125   1114   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1126   1115   
            }
 1127   1116   
            crate::protocol_serde::shape_query_params_targeting_map_of_set_of_length_string_operation::de_query_params_targeting_map_of_set_of_length_string_operation_http_request(request)
 1128   1117   
                            .await
 1129         -
                            .map_err(Into::into)
 1130   1118   
        };
 1131   1119   
        use ::futures_util::future::TryFutureExt;
 1132   1120   
        let fut = fut.map_err(
 1133   1121   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1134   1122   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1135   1123   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1136   1124   
                    e,
 1137   1125   
                )
 1138   1126   
            },
 1139   1127   
        );
@@ -1200,1188 +1260,1247 @@
 1220   1208   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1221   1209   
        let fut = async move {
 1222   1210   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1223   1211   
                request.headers(),
 1224   1212   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFLENGTHSTRINGOPERATION,
 1225   1213   
            ) {
 1226   1214   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1227   1215   
            }
 1228   1216   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_length_string_operation::de_query_params_targeting_map_of_list_of_length_string_operation_http_request(request)
 1229   1217   
                            .await
 1230         -
                            .map_err(Into::into)
 1231   1218   
        };
 1232   1219   
        use ::futures_util::future::TryFutureExt;
 1233   1220   
        let fut = fut.map_err(
 1234   1221   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1235   1222   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1236   1223   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1237   1224   
                    e,
 1238   1225   
                )
 1239   1226   
            },
 1240   1227   
        );
@@ -1301,1288 +1361,1347 @@
 1321   1308   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1322   1309   
        let fut = async move {
 1323   1310   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1324   1311   
                request.headers(),
 1325   1312   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLENGTHSTRINGOPERATION,
 1326   1313   
            ) {
 1327   1314   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1328   1315   
            }
 1329   1316   
            crate::protocol_serde::shape_query_params_targeting_map_of_length_string_operation::de_query_params_targeting_map_of_length_string_operation_http_request(request)
 1330   1317   
                            .await
 1331         -
                            .map_err(Into::into)
 1332   1318   
        };
 1333   1319   
        use ::futures_util::future::TryFutureExt;
 1334   1320   
        let fut = fut.map_err(
 1335   1321   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1336   1322   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1337   1323   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1338   1324   
                    e,
 1339   1325   
                )
 1340   1326   
            },
 1341   1327   
        );
@@ -1401,1387 +1461,1446 @@
 1421   1407   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1422   1408   
        let fut = async move {
 1423   1409   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1424   1410   
                request.headers(),
 1425   1411   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGLENGTHMAPOPERATION,
 1426   1412   
            ) {
 1427   1413   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1428   1414   
            }
 1429   1415   
            crate::protocol_serde::shape_query_params_targeting_length_map_operation::de_query_params_targeting_length_map_operation_http_request(request)
 1430   1416   
                            .await
 1431         -
                            .map_err(Into::into)
 1432   1417   
        };
 1433   1418   
        use ::futures_util::future::TryFutureExt;
 1434   1419   
        let fut = fut.map_err(
 1435   1420   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1436   1421   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1437   1422   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1438   1423   
                    e,
 1439   1424   
                )
 1440   1425   
            },
 1441   1426   
        );
@@ -1501,1486 +1561,1545 @@
 1521   1506   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1522   1507   
        let fut = async move {
 1523   1508   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1524   1509   
                request.headers(),
 1525   1510   
                &CONTENT_TYPE_CONSTRAINEDRECURSIVESHAPESOPERATION,
 1526   1511   
            ) {
 1527   1512   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1528   1513   
            }
 1529   1514   
            crate::protocol_serde::shape_constrained_recursive_shapes_operation::de_constrained_recursive_shapes_operation_http_request(request)
 1530   1515   
                            .await
 1531         -
                            .map_err(Into::into)
 1532   1516   
        };
 1533   1517   
        use ::futures_util::future::TryFutureExt;
 1534   1518   
        let fut = fut.map_err(
 1535   1519   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1536   1520   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1537   1521   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1538   1522   
                    e,
 1539   1523   
                )
 1540   1524   
            },
 1541   1525   
        );
@@ -1602,1586 +1662,1645 @@
 1622   1606   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1623   1607   
        let fut = async move {
 1624   1608   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1625   1609   
                request.headers(),
 1626   1610   
                &CONTENT_TYPE_CONSTRAINEDHTTPPAYLOADBOUNDSHAPEOPERATION,
 1627   1611   
            ) {
 1628   1612   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1629   1613   
            }
 1630   1614   
            crate::protocol_serde::shape_constrained_http_payload_bound_shape_operation::de_constrained_http_payload_bound_shape_operation_http_request(request)
 1631   1615   
                            .await
 1632         -
                            .map_err(Into::into)
 1633   1616   
        };
 1634   1617   
        use ::futures_util::future::TryFutureExt;
 1635   1618   
        let fut = fut.map_err(
 1636   1619   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1637   1620   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1638   1621   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1639   1622   
                    e,
 1640   1623   
                )
 1641   1624   
            },
 1642   1625   
        );
@@ -1702,1685 +1762,1744 @@
 1722   1705   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1723   1706   
        let fut = async move {
 1724   1707   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1725   1708   
                request.headers(),
 1726   1709   
                &CONTENT_TYPE_CONSTRAINEDHTTPBOUNDSHAPESOPERATION,
 1727   1710   
            ) {
 1728   1711   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1729   1712   
            }
 1730   1713   
            crate::protocol_serde::shape_constrained_http_bound_shapes_operation::de_constrained_http_bound_shapes_operation_http_request(request)
 1731   1714   
                            .await
 1732         -
                            .map_err(Into::into)
 1733   1715   
        };
 1734   1716   
        use ::futures_util::future::TryFutureExt;
 1735   1717   
        let fut = fut.map_err(
 1736   1718   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1737   1719   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1738   1720   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1739   1721   
                    e,
 1740   1722   
                )
 1741   1723   
            },
 1742   1724   
        );
@@ -1802,1784 +1862,1843 @@
 1822   1804   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1823   1805   
        let fut = async move {
 1824   1806   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1825   1807   
                request.headers(),
 1826   1808   
                &CONTENT_TYPE_CONSTRAINEDSHAPESONLYINOUTPUTOPERATION,
 1827   1809   
            ) {
 1828   1810   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1829   1811   
            }
 1830   1812   
            crate::protocol_serde::shape_constrained_shapes_only_in_output_operation::de_constrained_shapes_only_in_output_operation_http_request(request)
 1831   1813   
                            .await
 1832         -
                            .map_err(Into::into)
 1833   1814   
        };
 1834   1815   
        use ::futures_util::future::TryFutureExt;
 1835   1816   
        let fut = fut.map_err(
 1836   1817   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1837   1818   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1838   1819   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1839   1820   
                    e,
 1840   1821   
                )
 1841   1822   
            },
 1842   1823   
        );
@@ -1884,1865 +1944,1924 @@
 1904   1885   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1905   1886   
        let fut = async move {
 1906   1887   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1907   1888   
                request.headers(),
 1908   1889   
                &CONTENT_TYPE_CONSTRAINEDSHAPESOPERATION,
 1909   1890   
            ) {
 1910   1891   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1911   1892   
            }
 1912   1893   
            crate::protocol_serde::shape_constrained_shapes_operation::de_constrained_shapes_operation_http_request(request)
 1913   1894   
                            .await
 1914         -
                            .map_err(Into::into)
 1915   1895   
        };
 1916   1896   
        use ::futures_util::future::TryFutureExt;
 1917   1897   
        let fut = fut.map_err(
 1918   1898   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1919   1899   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1920   1900   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1921   1901   
                    e,
 1922   1902   
                )
 1923   1903   
            },
 1924   1904   
        );

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

@@ -758,758 +818,817 @@
  778    778   
    /// Creates a new builder-style object to manufacture [`ConstrainedShapesOperationOutput`](crate::output::ConstrainedShapesOperationOutput).
  779    779   
    pub fn builder() -> crate::output::constrained_shapes_operation_output::Builder {
  780    780   
        crate::output::constrained_shapes_operation_output::Builder::default()
  781    781   
    }
  782    782   
}
  783    783   
/// See [`EventStreamsOperationOutput`](crate::output::EventStreamsOperationOutput).
  784    784   
pub mod event_streams_operation_output {
  785    785   
  786    786   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
  787    787   
    /// Holds one variant for each of the ways the builder can fail.
  788         -
  789    788   
    #[allow(clippy::enum_variant_names)]
  790    789   
    pub enum ConstraintViolation {
  791    790   
        /// `events` was not provided but it is required when building `EventStreamsOperationOutput`.
  792    791   
        MissingEvents,
  793    792   
    }
  794    793   
    impl ::std::fmt::Display for ConstraintViolation {
  795    794   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  796    795   
            match self {
  797    796   
                ConstraintViolation::MissingEvents => write!(f, "`events` was not provided but it is required when building `EventStreamsOperationOutput`"),
  798    797   
            }
@@ -1439,1438 +1499,1497 @@
 1459   1458   
                length_map: self.length_map,
 1460   1459   
            }
 1461   1460   
        }
 1462   1461   
    }
 1463   1462   
}
 1464   1463   
/// See [`ConstrainedRecursiveShapesOperationOutput`](crate::output::ConstrainedRecursiveShapesOperationOutput).
 1465   1464   
pub mod constrained_recursive_shapes_operation_output {
 1466   1465   
 1467   1466   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1468   1467   
    /// Holds one variant for each of the ways the builder can fail.
 1469         -
 1470   1468   
    #[allow(clippy::enum_variant_names)]
 1471   1469   
    pub enum ConstraintViolation {
 1472   1470   
        /// `recursive_list` was not provided but it is required when building `ConstrainedRecursiveShapesOperationOutput`.
 1473   1471   
        MissingRecursiveList,
 1474   1472   
    }
 1475   1473   
    impl ::std::fmt::Display for ConstraintViolation {
 1476   1474   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1477   1475   
            match self {
 1478   1476   
                ConstraintViolation::MissingRecursiveList => write!(f, "`recursive_list` was not provided but it is required when building `ConstrainedRecursiveShapesOperationOutput`"),
 1479   1477   
            }
@@ -1512,1510 +1572,1569 @@
 1532   1530   
                    .ok_or(ConstraintViolation::MissingRecursiveList)?,
 1533   1531   
            })
 1534   1532   
        }
 1535   1533   
    }
 1536   1534   
}
 1537   1535   
/// See [`ConstrainedHttpPayloadBoundShapeOperationOutput`](crate::output::ConstrainedHttpPayloadBoundShapeOperationOutput).
 1538   1536   
pub mod constrained_http_payload_bound_shape_operation_output {
 1539   1537   
 1540   1538   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1541   1539   
    /// Holds one variant for each of the ways the builder can fail.
 1542         -
 1543   1540   
    #[allow(clippy::enum_variant_names)]
 1544   1541   
    pub enum ConstraintViolation {
 1545   1542   
        /// `http_payload_bound_constrained_shape` was not provided but it is required when building `ConstrainedHttpPayloadBoundShapeOperationOutput`.
 1546   1543   
        MissingHttpPayloadBoundConstrainedShape,
 1547   1544   
    }
 1548   1545   
    impl ::std::fmt::Display for ConstraintViolation {
 1549   1546   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1550   1547   
            match self {
 1551   1548   
                ConstraintViolation::MissingHttpPayloadBoundConstrainedShape => write!(f, "`http_payload_bound_constrained_shape` was not provided but it is required when building `ConstrainedHttpPayloadBoundShapeOperationOutput`"),
 1552   1549   
            }
@@ -1579,1576 +1639,1635 @@
 1599   1596   
                },
 1600   1597   
            )
 1601   1598   
        }
 1602   1599   
    }
 1603   1600   
}
 1604   1601   
/// See [`ConstrainedHttpBoundShapesOperationOutput`](crate::output::ConstrainedHttpBoundShapesOperationOutput).
 1605   1602   
pub mod constrained_http_bound_shapes_operation_output {
 1606   1603   
 1607   1604   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1608   1605   
    /// Holds one variant for each of the ways the builder can fail.
 1609         -
 1610   1606   
    #[allow(clippy::enum_variant_names)]
 1611   1607   
    pub enum ConstraintViolation {
 1612   1608   
        /// `length_string_label` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationOutput`.
 1613   1609   
        MissingLengthStringLabel,
 1614   1610   
        /// `enum_string_label` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationOutput`.
 1615   1611   
        MissingEnumStringLabel,
 1616   1612   
        /// `length_string_header_map` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationOutput`.
 1617   1613   
        MissingLengthStringHeaderMap,
 1618   1614   
    }
 1619   1615   
    impl ::std::fmt::Display for ConstraintViolation {
@@ -2095,2091 +2155,2150 @@
 2115   2111   
                union: self.union,
 2116   2112   
            }
 2117   2113   
        }
 2118   2114   
    }
 2119   2115   
}
 2120   2116   
/// See [`ConstrainedShapesOperationOutput`](crate::output::ConstrainedShapesOperationOutput).
 2121   2117   
pub mod constrained_shapes_operation_output {
 2122   2118   
 2123   2119   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2124   2120   
    /// Holds one variant for each of the ways the builder can fail.
 2125         -
 2126   2121   
    #[allow(clippy::enum_variant_names)]
 2127   2122   
    pub enum ConstraintViolation {
 2128   2123   
        /// `con_a` was not provided but it is required when building `ConstrainedShapesOperationOutput`.
 2129   2124   
        MissingConA,
 2130   2125   
    }
 2131   2126   
    impl ::std::fmt::Display for ConstraintViolation {
 2132   2127   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2133   2128   
            match self {
 2134   2129   
                ConstraintViolation::MissingConA => write!(f, "`con_a` was not provided but it is required when building `ConstrainedShapesOperationOutput`"),
 2135   2130   
            }

tmp-codegen-diff/codegen-server-test/constraints_without_public_constrained_types/rust-server-codegen/src/protocol_serde/shape_constrained_http_bound_shapes_operation.rs

@@ -102,102 +178,178 @@
  122    122   
                ::nom::sequence::preceded(
  123    123   
                    ::nom::bytes::complete::tag("/"),
  124    124   
                    ::nom::branch::alt::<_, _, ::nom::error::Error<&str>, _>((
  125    125   
                        ::nom::bytes::complete::take_until("/"),
  126    126   
                        ::nom::combinator::rest,
  127    127   
                    )),
  128    128   
                ),
  129    129   
            ))(input_string)?;
  130    130   
        debug_assert_eq!("", input_string);
  131    131   
        input = input.set_range_integer_label(
  132         -
                                        crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_integer_label(m1)?
  133         -
                                    );
         132  +
                                    crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_integer_label(m1)?
         133  +
                                );
  134    134   
        input = input.set_range_short_label(
  135         -
                                        crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_short_label(m2)?
  136         -
                                    );
         135  +
                                    crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_short_label(m2)?
         136  +
                                );
  137    137   
        input = input.set_range_long_label(
  138         -
                                        crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_long_label(m3)?
  139         -
                                    );
         138  +
                                    crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_long_label(m3)?
         139  +
                                );
  140    140   
        input = input.set_range_byte_label(
  141         -
                                        crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_byte_label(m4)?
  142         -
                                    );
         141  +
                                    crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_range_byte_label(m4)?
         142  +
                                );
  143    143   
        input = input.set_length_string_label(
  144         -
                                        crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_length_string_label(m5)?
  145         -
                                    );
         144  +
                                    crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_length_string_label(m5)?
         145  +
                                );
  146    146   
        input = input.set_enum_string_label(
  147         -
                                        crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_enum_string_label(m6)?
  148         -
                                    );
         147  +
                                    crate::protocol_serde::shape_constrained_http_bound_shapes_operation_input::de_enum_string_label(m6)?
         148  +
                                );
  149    149   
        let query_string = uri.query().unwrap_or("");
  150    150   
        let pairs = ::form_urlencoded::parse(query_string.as_bytes());
  151    151   
        let mut enum_string_query_seen = false;
  152    152   
        let mut length_string_query_seen = false;
  153    153   
        let mut range_byte_query_seen = false;
  154    154   
        let mut range_integer_query_seen = false;
  155    155   
        let mut range_long_query_seen = false;
  156    156   
        let mut range_short_query_seen = false;
  157    157   
        let mut enum_string_list_query = Vec::new();
  158    158   
        let mut length_list_pattern_string_query = Vec::new();

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

@@ -22,22 +82,81 @@
   42     42   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   43     43   
        let fut = async move {
   44     44   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
   45     45   
                request.headers(),
   46     46   
                &CONTENT_TYPE_STARTSNAPSHOT,
   47     47   
            ) {
   48     48   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
   49     49   
            }
   50     50   
            crate::protocol_serde::shape_start_snapshot::de_start_snapshot_http_request(request)
   51     51   
                .await
   52         -
                .map_err(Into::into)
   53     52   
        };
   54     53   
        use ::futures_util::future::TryFutureExt;
   55     54   
        let fut = fut.map_err(
   56     55   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
   57     56   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   58     57   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
   59     58   
                    e,
   60     59   
                )
   61     60   
            },
   62     61   
        );
@@ -127,126 +187,185 @@
  147    146   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  148    147   
                request.headers(),
  149    148   
                &CONTENT_TYPE_PUTSNAPSHOTBLOCK,
  150    149   
            ) {
  151    150   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  152    151   
            }
  153    152   
            crate::protocol_serde::shape_put_snapshot_block::de_put_snapshot_block_http_request(
  154    153   
                request,
  155    154   
            )
  156    155   
            .await
  157         -
            .map_err(Into::into)
  158    156   
        };
  159    157   
        use ::futures_util::future::TryFutureExt;
  160    158   
        let fut = fut.map_err(
  161    159   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  162    160   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  163    161   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  164    162   
                    e,
  165    163   
                )
  166    164   
            },
  167    165   
        );
@@ -235,233 +295,292 @@
  255    253   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  256    254   
                request.headers(),
  257    255   
                &CONTENT_TYPE_LISTSNAPSHOTBLOCKS,
  258    256   
            ) {
  259    257   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  260    258   
            }
  261    259   
            crate::protocol_serde::shape_list_snapshot_blocks::de_list_snapshot_blocks_http_request(
  262    260   
                request,
  263    261   
            )
  264    262   
            .await
  265         -
            .map_err(Into::into)
  266    263   
        };
  267    264   
        use ::futures_util::future::TryFutureExt;
  268    265   
        let fut = fut.map_err(
  269    266   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  270    267   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  271    268   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  272    269   
                    e,
  273    270   
                )
  274    271   
            },
  275    272   
        );
@@ -341,338 +401,397 @@
  361    358   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  362    359   
                request.headers(),
  363    360   
                &CONTENT_TYPE_LISTCHANGEDBLOCKS,
  364    361   
            ) {
  365    362   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  366    363   
            }
  367    364   
            crate::protocol_serde::shape_list_changed_blocks::de_list_changed_blocks_http_request(
  368    365   
                request,
  369    366   
            )
  370    367   
            .await
  371         -
            .map_err(Into::into)
  372    368   
        };
  373    369   
        use ::futures_util::future::TryFutureExt;
  374    370   
        let fut = fut.map_err(
  375    371   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  376    372   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  377    373   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  378    374   
                    e,
  379    375   
                )
  380    376   
            },
  381    377   
        );
@@ -447,443 +507,502 @@
  467    463   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  468    464   
                request.headers(),
  469    465   
                &CONTENT_TYPE_GETSNAPSHOTBLOCK,
  470    466   
            ) {
  471    467   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  472    468   
            }
  473    469   
            crate::protocol_serde::shape_get_snapshot_block::de_get_snapshot_block_http_request(
  474    470   
                request,
  475    471   
            )
  476    472   
            .await
  477         -
            .map_err(Into::into)
  478    473   
        };
  479    474   
        use ::futures_util::future::TryFutureExt;
  480    475   
        let fut = fut.map_err(
  481    476   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  482    477   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  483    478   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  484    479   
                    e,
  485    480   
                )
  486    481   
            },
  487    482   
        );
@@ -555,550 +615,609 @@
  575    570   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  576    571   
                request.headers(),
  577    572   
                &CONTENT_TYPE_COMPLETESNAPSHOT,
  578    573   
            ) {
  579    574   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  580    575   
            }
  581    576   
            crate::protocol_serde::shape_complete_snapshot::de_complete_snapshot_http_request(
  582    577   
                request,
  583    578   
            )
  584    579   
            .await
  585         -
            .map_err(Into::into)
  586    580   
        };
  587    581   
        use ::futures_util::future::TryFutureExt;
  588    582   
        let fut = fut.map_err(
  589    583   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  590    584   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  591    585   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  592    586   
                    e,
  593    587   
                )
  594    588   
            },
  595    589   
        );

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

@@ -27,27 +87,86 @@
   47     47   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   48     48   
        let fut = async move {
   49     49   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
   50     50   
                request.headers(),
   51     51   
                &CONTENT_TYPE_OPERATIONWITHNESTEDSTRUCTURE,
   52     52   
            ) {
   53     53   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
   54     54   
            }
   55     55   
            crate::protocol_serde::shape_operation_with_nested_structure::de_operation_with_nested_structure_http_request(request)
   56     56   
                            .await
   57         -
                            .map_err(Into::into)
   58     57   
        };
   59     58   
        use ::futures_util::future::TryFutureExt;
   60     59   
        let fut = fut.map_err(
   61     60   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
   62     61   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   63     62   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
   64     63   
            },
   65     64   
        );
   66     65   
        OperationWithNestedStructureInputFuture {
   67     66   
            inner: Box::pin(fut),
@@ -345,344 +405,403 @@
  365    364   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  366    365   
        let fut = async move {
  367    366   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  368    367   
                request.headers(),
  369    368   
                &CONTENT_TYPE_OPERATIONWITHREQUIREDMEMBERS,
  370    369   
            ) {
  371    370   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  372    371   
            }
  373    372   
            crate::protocol_serde::shape_operation_with_required_members::de_operation_with_required_members_http_request(request)
  374    373   
                            .await
  375         -
                            .map_err(Into::into)
  376    374   
        };
  377    375   
        use ::futures_util::future::TryFutureExt;
  378    376   
        let fut = fut.map_err(
  379    377   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  380    378   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  381    379   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  382    380   
            },
  383    381   
        );
  384    382   
        OperationWithRequiredMembersInputFuture {
  385    383   
            inner: Box::pin(fut),
@@ -430,428 +490,487 @@
  450    448   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  451    449   
        let fut = async move {
  452    450   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  453    451   
                request.headers(),
  454    452   
                &CONTENT_TYPE_OPERATIONWITHDEFAULTS,
  455    453   
            ) {
  456    454   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  457    455   
            }
  458    456   
            crate::protocol_serde::shape_operation_with_defaults::de_operation_with_defaults_http_request(request)
  459    457   
                            .await
  460         -
                            .map_err(Into::into)
  461    458   
        };
  462    459   
        use ::futures_util::future::TryFutureExt;
  463    460   
        let fut = fut.map_err(
  464    461   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  465    462   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  466    463   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  467    464   
            },
  468    465   
        );
  469    466   
        OperationWithDefaultsInputFuture {
  470    467   
            inner: Box::pin(fut),
@@ -820,817 +880,876 @@
  840    837   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  841    838   
        let fut = async move {
  842    839   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  843    840   
                request.headers(),
  844    841   
                &CONTENT_TYPE_CONTENTTYPEPARAMETERS,
  845    842   
            ) {
  846    843   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  847    844   
            }
  848    845   
            crate::protocol_serde::shape_content_type_parameters::de_content_type_parameters_http_request(request)
  849    846   
                            .await
  850         -
                            .map_err(Into::into)
  851    847   
        };
  852    848   
        use ::futures_util::future::TryFutureExt;
  853    849   
        let fut = fut.map_err(
  854    850   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  855    851   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  856    852   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  857    853   
            },
  858    854   
        );
  859    855   
        ContentTypeParametersInputFuture {
  860    856   
            inner: Box::pin(fut),
@@ -957,953 +1017,1012 @@
  977    973   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  978    974   
        let fut = async move {
  979    975   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  980    976   
                request.headers(),
  981    977   
                &CONTENT_TYPE_PUTWITHCONTENTENCODING,
  982    978   
            ) {
  983    979   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  984    980   
            }
  985    981   
            crate::protocol_serde::shape_put_with_content_encoding::de_put_with_content_encoding_http_request(request)
  986    982   
                            .await
  987         -
                            .map_err(Into::into)
  988    983   
        };
  989    984   
        use ::futures_util::future::TryFutureExt;
  990    985   
        let fut = fut.map_err(
  991    986   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  992    987   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  993    988   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  994    989   
            },
  995    990   
        );
  996    991   
        PutWithContentEncodingInputFuture {
  997    992   
            inner: Box::pin(fut),
@@ -1042,1037 +1102,1096 @@
 1062   1057   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1063   1058   
        let fut = async move {
 1064   1059   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1065   1060   
                request.headers(),
 1066   1061   
                &CONTENT_TYPE_HOSTWITHPATHOPERATION,
 1067   1062   
            ) {
 1068   1063   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 1069   1064   
            }
 1070   1065   
            crate::protocol_serde::shape_host_with_path_operation::de_host_with_path_operation_http_request(request)
 1071   1066   
                            .await
 1072         -
                            .map_err(Into::into)
 1073   1067   
        };
 1074   1068   
        use ::futures_util::future::TryFutureExt;
 1075   1069   
        let fut = fut.map_err(
 1076   1070   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1077   1071   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1078   1072   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1079   1073   
            },
 1080   1074   
        );
 1081   1075   
        HostWithPathOperationInputFuture {
 1082   1076   
            inner: Box::pin(fut),
@@ -1127,1121 +1187,1180 @@
 1147   1141   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1148   1142   
        let fut = async move {
 1149   1143   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1150   1144   
                request.headers(),
 1151   1145   
                &CONTENT_TYPE_ENDPOINTWITHHOSTLABELOPERATION,
 1152   1146   
            ) {
 1153   1147   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 1154   1148   
            }
 1155   1149   
            crate::protocol_serde::shape_endpoint_with_host_label_operation::de_endpoint_with_host_label_operation_http_request(request)
 1156   1150   
                            .await
 1157         -
                            .map_err(Into::into)
 1158   1151   
        };
 1159   1152   
        use ::futures_util::future::TryFutureExt;
 1160   1153   
        let fut = fut.map_err(
 1161   1154   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1162   1155   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1163   1156   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1164   1157   
            },
 1165   1158   
        );
 1166   1159   
        EndpointWithHostLabelOperationInputFuture {
 1167   1160   
            inner: Box::pin(fut),
@@ -1288,1281 +1348,1340 @@
 1308   1301   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1309   1302   
                request.headers(),
 1310   1303   
                &CONTENT_TYPE_ENDPOINTOPERATION,
 1311   1304   
            ) {
 1312   1305   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 1313   1306   
            }
 1314   1307   
            crate::protocol_serde::shape_endpoint_operation::de_endpoint_operation_http_request(
 1315   1308   
                request,
 1316   1309   
            )
 1317   1310   
            .await
 1318         -
            .map_err(Into::into)
 1319   1311   
        };
 1320   1312   
        use ::futures_util::future::TryFutureExt;
 1321   1313   
        let fut = fut.map_err(
 1322   1314   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1323   1315   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1324   1316   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1325   1317   
            },
 1326   1318   
        );
 1327   1319   
        EndpointOperationInputFuture {
 1328   1320   
            inner: Box::pin(fut),
@@ -1430,1422 +1492,1482 @@
 1450   1442   
    type Future = JsonUnionsInputFuture;
 1451   1443   
 1452   1444   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1453   1445   
        let fut = async move {
 1454   1446   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1455   1447   
                request.headers(),
 1456   1448   
                &CONTENT_TYPE_JSONUNIONS,
 1457   1449   
            ) {
 1458   1450   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 1459   1451   
            }
 1460         -
            crate::protocol_serde::shape_json_unions::de_json_unions_http_request(request)
 1461         -
                .await
 1462         -
                .map_err(Into::into)
        1452  +
            crate::protocol_serde::shape_json_unions::de_json_unions_http_request(request).await
 1463   1453   
        };
 1464   1454   
        use ::futures_util::future::TryFutureExt;
 1465   1455   
        let fut = fut.map_err(
 1466   1456   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1467   1457   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1468   1458   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1469   1459   
            },
 1470   1460   
        );
 1471   1461   
        JsonUnionsInputFuture {
 1472   1462   
            inner: Box::pin(fut),
@@ -2394,2384 +2454,2443 @@
 2414   2404   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 2415   2405   
                request.headers(),
 2416   2406   
                &CONTENT_TYPE_GREETINGWITHERRORS,
 2417   2407   
            ) {
 2418   2408   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 2419   2409   
            }
 2420   2410   
            crate::protocol_serde::shape_greeting_with_errors::de_greeting_with_errors_http_request(
 2421   2411   
                request,
 2422   2412   
            )
 2423   2413   
            .await
 2424         -
            .map_err(Into::into)
 2425   2414   
        };
 2426   2415   
        use ::futures_util::future::TryFutureExt;
 2427   2416   
        let fut = fut.map_err(
 2428   2417   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 2429   2418   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 2430   2419   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 2431   2420   
            },
 2432   2421   
        );
 2433   2422   
        GreetingWithErrorsInputFuture {
 2434   2423   
            inner: Box::pin(fut),
@@ -2602,2591 +2662,2650 @@
 2622   2611   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 2623   2612   
        let fut = async move {
 2624   2613   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 2625   2614   
                request.headers(),
 2626   2615   
                &CONTENT_TYPE_SIMPLESCALARPROPERTIES,
 2627   2616   
            ) {
 2628   2617   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 2629   2618   
            }
 2630   2619   
            crate::protocol_serde::shape_simple_scalar_properties::de_simple_scalar_properties_http_request(request)
 2631   2620   
                            .await
 2632         -
                            .map_err(Into::into)
 2633   2621   
        };
 2634   2622   
        use ::futures_util::future::TryFutureExt;
 2635   2623   
        let fut = fut.map_err(
 2636   2624   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 2637   2625   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 2638   2626   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 2639   2627   
            },
 2640   2628   
        );
 2641   2629   
        SimpleScalarPropertiesInputFuture {
 2642   2630   
            inner: Box::pin(fut),
@@ -3009,2997 +3069,3056 @@
 3029   3017   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 3030   3018   
        let fut = async move {
 3031   3019   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 3032   3020   
                request.headers(),
 3033   3021   
                &CONTENT_TYPE_EMPTYINPUTANDEMPTYOUTPUT,
 3034   3022   
            ) {
 3035   3023   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 3036   3024   
            }
 3037   3025   
            crate::protocol_serde::shape_empty_input_and_empty_output::de_empty_input_and_empty_output_http_request(request)
 3038   3026   
                            .await
 3039         -
                            .map_err(Into::into)
 3040   3027   
        };
 3041   3028   
        use ::futures_util::future::TryFutureExt;
 3042   3029   
        let fut = fut.map_err(
 3043   3030   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 3044   3031   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 3045   3032   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 3046   3033   
            },
 3047   3034   
        );
 3048   3035   
        EmptyInputAndEmptyOutputInputFuture {
 3049   3036   
            inner: Box::pin(fut),
@@ -3175,3162 +3235,3221 @@
 3195   3182   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 3196   3183   
                request.headers(),
 3197   3184   
                &CONTENT_TYPE_NOINPUTANDOUTPUT,
 3198   3185   
            ) {
 3199   3186   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 3200   3187   
            }
 3201   3188   
            crate::protocol_serde::shape_no_input_and_output::de_no_input_and_output_http_request(
 3202   3189   
                request,
 3203   3190   
            )
 3204   3191   
            .await
 3205         -
            .map_err(Into::into)
 3206   3192   
        };
 3207   3193   
        use ::futures_util::future::TryFutureExt;
 3208   3194   
        let fut = fut.map_err(
 3209   3195   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 3210   3196   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 3211   3197   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 3212   3198   
            },
 3213   3199   
        );
 3214   3200   
        NoInputAndOutputInputFuture {
 3215   3201   
            inner: Box::pin(fut),
@@ -3337,3323 +3397,3382 @@
 3357   3343   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 3358   3344   
        let fut = async move {
 3359   3345   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 3360   3346   
                request.headers(),
 3361   3347   
                &CONTENT_TYPE_NOINPUTANDNOOUTPUT,
 3362   3348   
            ) {
 3363   3349   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 3364   3350   
            }
 3365   3351   
            crate::protocol_serde::shape_no_input_and_no_output::de_no_input_and_no_output_http_request(request)
 3366   3352   
                            .await
 3367         -
                            .map_err(Into::into)
 3368   3353   
        };
 3369   3354   
        use ::futures_util::future::TryFutureExt;
 3370   3355   
        let fut = fut.map_err(
 3371   3356   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 3372   3357   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 3373   3358   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 3374   3359   
            },
 3375   3360   
        );
 3376   3361   
        NoInputAndNoOutputInputFuture {
 3377   3362   
            inner: Box::pin(fut),

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

@@ -27,27 +87,86 @@
   47     47   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   48     48   
        let fut = async move {
   49     49   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
   50     50   
                request.headers(),
   51     51   
                &CONTENT_TYPE_CONTENTTYPEPARAMETERS,
   52     52   
            ) {
   53     53   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
   54     54   
            }
   55     55   
            crate::protocol_serde::shape_content_type_parameters::de_content_type_parameters_http_request(request)
   56     56   
                            .await
   57         -
                            .map_err(Into::into)
   58     57   
        };
   59     58   
        use ::futures_util::future::TryFutureExt;
   60     59   
        let fut = fut.map_err(
   61     60   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
   62     61   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   63     62   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
   64     63   
            },
   65     64   
        );
   66     65   
        ContentTypeParametersInputFuture {
   67     66   
            inner: Box::pin(fut),
@@ -164,163 +224,222 @@
  184    183   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  185    184   
        let fut = async move {
  186    185   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  187    186   
                request.headers(),
  188    187   
                &CONTENT_TYPE_PUTWITHCONTENTENCODING,
  189    188   
            ) {
  190    189   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  191    190   
            }
  192    191   
            crate::protocol_serde::shape_put_with_content_encoding::de_put_with_content_encoding_http_request(request)
  193    192   
                            .await
  194         -
                            .map_err(Into::into)
  195    193   
        };
  196    194   
        use ::futures_util::future::TryFutureExt;
  197    195   
        let fut = fut.map_err(
  198    196   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  199    197   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  200    198   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  201    199   
            },
  202    200   
        );
  203    201   
        PutWithContentEncodingInputFuture {
  204    202   
            inner: Box::pin(fut),
@@ -251,249 +311,308 @@
  271    269   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  272    270   
                request.headers(),
  273    271   
                &CONTENT_TYPE_FRACTIONALSECONDS,
  274    272   
            ) {
  275    273   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  276    274   
            }
  277    275   
            crate::protocol_serde::shape_fractional_seconds::de_fractional_seconds_http_request(
  278    276   
                request,
  279    277   
            )
  280    278   
            .await
  281         -
            .map_err(Into::into)
  282    279   
        };
  283    280   
        use ::futures_util::future::TryFutureExt;
  284    281   
        let fut = fut.map_err(
  285    282   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  286    283   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  287    284   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  288    285   
            },
  289    286   
        );
  290    287   
        FractionalSecondsInputFuture {
  291    288   
            inner: Box::pin(fut),
@@ -344,341 +404,400 @@
  364    361   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  365    362   
        let fut = async move {
  366    363   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  367    364   
                request.headers(),
  368    365   
                &CONTENT_TYPE_DATETIMEOFFSETS,
  369    366   
            ) {
  370    367   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  371    368   
            }
  372    369   
            crate::protocol_serde::shape_datetime_offsets::de_datetime_offsets_http_request(request)
  373    370   
                .await
  374         -
                .map_err(Into::into)
  375    371   
        };
  376    372   
        use ::futures_util::future::TryFutureExt;
  377    373   
        let fut = fut.map_err(
  378    374   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  379    375   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  380    376   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  381    377   
            },
  382    378   
        );
  383    379   
        DatetimeOffsetsInputFuture {
  384    380   
            inner: Box::pin(fut),
@@ -437,433 +497,492 @@
  457    453   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  458    454   
        let fut = async move {
  459    455   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  460    456   
                request.headers(),
  461    457   
                &CONTENT_TYPE_HOSTWITHPATHOPERATION,
  462    458   
            ) {
  463    459   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  464    460   
            }
  465    461   
            crate::protocol_serde::shape_host_with_path_operation::de_host_with_path_operation_http_request(request)
  466    462   
                            .await
  467         -
                            .map_err(Into::into)
  468    463   
        };
  469    464   
        use ::futures_util::future::TryFutureExt;
  470    465   
        let fut = fut.map_err(
  471    466   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  472    467   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  473    468   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  474    469   
            },
  475    470   
        );
  476    471   
        HostWithPathOperationInputFuture {
  477    472   
            inner: Box::pin(fut),
@@ -522,517 +582,576 @@
  542    537   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  543    538   
        let fut = async move {
  544    539   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  545    540   
                request.headers(),
  546    541   
                &CONTENT_TYPE_ENDPOINTWITHHOSTLABELOPERATION,
  547    542   
            ) {
  548    543   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  549    544   
            }
  550    545   
            crate::protocol_serde::shape_endpoint_with_host_label_operation::de_endpoint_with_host_label_operation_http_request(request)
  551    546   
                            .await
  552         -
                            .map_err(Into::into)
  553    547   
        };
  554    548   
        use ::futures_util::future::TryFutureExt;
  555    549   
        let fut = fut.map_err(
  556    550   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  557    551   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  558    552   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  559    553   
            },
  560    554   
        );
  561    555   
        EndpointWithHostLabelOperationInputFuture {
  562    556   
            inner: Box::pin(fut),
@@ -688,682 +748,741 @@
  708    702   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  709    703   
                request.headers(),
  710    704   
                &CONTENT_TYPE_ENDPOINTOPERATION,
  711    705   
            ) {
  712    706   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  713    707   
            }
  714    708   
            crate::protocol_serde::shape_endpoint_operation::de_endpoint_operation_http_request(
  715    709   
                request,
  716    710   
            )
  717    711   
            .await
  718         -
            .map_err(Into::into)
  719    712   
        };
  720    713   
        use ::futures_util::future::TryFutureExt;
  721    714   
        let fut = fut.map_err(
  722    715   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  723    716   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  724    717   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  725    718   
            },
  726    719   
        );
  727    720   
        EndpointOperationInputFuture {
  728    721   
            inner: Box::pin(fut),
@@ -832,825 +894,885 @@
  852    845   
    type Future = JsonUnionsInputFuture;
  853    846   
  854    847   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  855    848   
        let fut = async move {
  856    849   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  857    850   
                request.headers(),
  858    851   
                &CONTENT_TYPE_JSONUNIONS,
  859    852   
            ) {
  860    853   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  861    854   
            }
  862         -
            crate::protocol_serde::shape_json_unions::de_json_unions_http_request(request)
  863         -
                .await
  864         -
                .map_err(Into::into)
         855  +
            crate::protocol_serde::shape_json_unions::de_json_unions_http_request(request).await
  865    856   
        };
  866    857   
        use ::futures_util::future::TryFutureExt;
  867    858   
        let fut = fut.map_err(
  868    859   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  869    860   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  870    861   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  871    862   
            },
  872    863   
        );
  873    864   
        JsonUnionsInputFuture {
  874    865   
            inner: Box::pin(fut),
@@ -1716,1707 +1776,1766 @@
 1736   1727   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1737   1728   
                request.headers(),
 1738   1729   
                &CONTENT_TYPE_GREETINGWITHERRORS,
 1739   1730   
            ) {
 1740   1731   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 1741   1732   
            }
 1742   1733   
            crate::protocol_serde::shape_greeting_with_errors::de_greeting_with_errors_http_request(
 1743   1734   
                request,
 1744   1735   
            )
 1745   1736   
            .await
 1746         -
            .map_err(Into::into)
 1747   1737   
        };
 1748   1738   
        use ::futures_util::future::TryFutureExt;
 1749   1739   
        let fut = fut.map_err(
 1750   1740   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1751   1741   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1752   1742   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1753   1743   
            },
 1754   1744   
        );
 1755   1745   
        GreetingWithErrorsInputFuture {
 1756   1746   
            inner: Box::pin(fut),
@@ -1924,1914 +1984,1973 @@
 1944   1934   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1945   1935   
        let fut = async move {
 1946   1936   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1947   1937   
                request.headers(),
 1948   1938   
                &CONTENT_TYPE_SPARSENULLSOPERATION,
 1949   1939   
            ) {
 1950   1940   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 1951   1941   
            }
 1952   1942   
            crate::protocol_serde::shape_sparse_nulls_operation::de_sparse_nulls_operation_http_request(request)
 1953   1943   
                            .await
 1954         -
                            .map_err(Into::into)
 1955   1944   
        };
 1956   1945   
        use ::futures_util::future::TryFutureExt;
 1957   1946   
        let fut = fut.map_err(
 1958   1947   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1959   1948   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1960   1949   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1961   1950   
            },
 1962   1951   
        );
 1963   1952   
        SparseNullsOperationInputFuture {
 1964   1953   
            inner: Box::pin(fut),
@@ -2186,2175 +2246,2234 @@
 2206   2195   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 2207   2196   
        let fut = async move {
 2208   2197   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 2209   2198   
                request.headers(),
 2210   2199   
                &CONTENT_TYPE_NULLOPERATION,
 2211   2200   
            ) {
 2212   2201   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 2213   2202   
            }
 2214   2203   
            crate::protocol_serde::shape_null_operation::de_null_operation_http_request(request)
 2215   2204   
                .await
 2216         -
                .map_err(Into::into)
 2217   2205   
        };
 2218   2206   
        use ::futures_util::future::TryFutureExt;
 2219   2207   
        let fut = fut.map_err(
 2220   2208   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 2221   2209   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 2222   2210   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 2223   2211   
            },
 2224   2212   
        );
 2225   2213   
        NullOperationInputFuture {
 2226   2214   
            inner: Box::pin(fut),
@@ -2357,2345 +2419,2405 @@
 2377   2365   
    type Future = JsonEnumsInputFuture;
 2378   2366   
 2379   2367   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 2380   2368   
        let fut = async move {
 2381   2369   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 2382   2370   
                request.headers(),
 2383   2371   
                &CONTENT_TYPE_JSONENUMS,
 2384   2372   
            ) {
 2385   2373   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 2386   2374   
            }
 2387         -
            crate::protocol_serde::shape_json_enums::de_json_enums_http_request(request)
 2388         -
                .await
 2389         -
                .map_err(Into::into)
        2375  +
            crate::protocol_serde::shape_json_enums::de_json_enums_http_request(request).await
 2390   2376   
        };
 2391   2377   
        use ::futures_util::future::TryFutureExt;
 2392   2378   
        let fut = fut.map_err(
 2393   2379   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 2394   2380   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 2395   2381   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 2396   2382   
            },
 2397   2383   
        );
 2398   2384   
        JsonEnumsInputFuture {
 2399   2385   
            inner: Box::pin(fut),
@@ -2650,2636 +2710,2695 @@
 2670   2656   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 2671   2657   
        let fut = async move {
 2672   2658   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 2673   2659   
                request.headers(),
 2674   2660   
                &CONTENT_TYPE_PUTANDGETINLINEDOCUMENTS,
 2675   2661   
            ) {
 2676   2662   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 2677   2663   
            }
 2678   2664   
            crate::protocol_serde::shape_put_and_get_inline_documents::de_put_and_get_inline_documents_http_request(request)
 2679   2665   
                            .await
 2680         -
                            .map_err(Into::into)
 2681   2666   
        };
 2682   2667   
        use ::futures_util::future::TryFutureExt;
 2683   2668   
        let fut = fut.map_err(
 2684   2669   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 2685   2670   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 2686   2671   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 2687   2672   
            },
 2688   2673   
        );
 2689   2674   
        PutAndGetInlineDocumentsInputFuture {
 2690   2675   
            inner: Box::pin(fut),
@@ -2848,2833 +2908,2892 @@
 2868   2853   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 2869   2854   
        let fut = async move {
 2870   2855   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 2871   2856   
                request.headers(),
 2872   2857   
                &CONTENT_TYPE_OPERATIONWITHOPTIONALINPUTOUTPUT,
 2873   2858   
            ) {
 2874   2859   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 2875   2860   
            }
 2876   2861   
            crate::protocol_serde::shape_operation_with_optional_input_output::de_operation_with_optional_input_output_http_request(request)
 2877   2862   
                            .await
 2878         -
                            .map_err(Into::into)
 2879   2863   
        };
 2880   2864   
        use ::futures_util::future::TryFutureExt;
 2881   2865   
        let fut = fut.map_err(
 2882   2866   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 2883   2867   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 2884   2868   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 2885   2869   
            },
 2886   2870   
        );
 2887   2871   
        OperationWithOptionalInputOutputInputFuture {
 2888   2872   
            inner: Box::pin(fut),
@@ -3046,3030 +3106,3089 @@
 3066   3050   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 3067   3051   
        let fut = async move {
 3068   3052   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 3069   3053   
                request.headers(),
 3070   3054   
                &CONTENT_TYPE_SIMPLESCALARPROPERTIES,
 3071   3055   
            ) {
 3072   3056   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 3073   3057   
            }
 3074   3058   
            crate::protocol_serde::shape_simple_scalar_properties::de_simple_scalar_properties_http_request(request)
 3075   3059   
                            .await
 3076         -
                            .map_err(Into::into)
 3077   3060   
        };
 3078   3061   
        use ::futures_util::future::TryFutureExt;
 3079   3062   
        let fut = fut.map_err(
 3080   3063   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 3081   3064   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 3082   3065   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 3083   3066   
            },
 3084   3067   
        );
 3085   3068   
        SimpleScalarPropertiesInputFuture {
 3086   3069   
            inner: Box::pin(fut),
@@ -3453,3436 +3513,3495 @@
 3473   3456   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 3474   3457   
        let fut = async move {
 3475   3458   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 3476   3459   
                request.headers(),
 3477   3460   
                &CONTENT_TYPE_KITCHENSINKOPERATION,
 3478   3461   
            ) {
 3479   3462   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 3480   3463   
            }
 3481   3464   
            crate::protocol_serde::shape_kitchen_sink_operation::de_kitchen_sink_operation_http_request(request)
 3482   3465   
                            .await
 3483         -
                            .map_err(Into::into)
 3484   3466   
        };
 3485   3467   
        use ::futures_util::future::TryFutureExt;
 3486   3468   
        let fut = fut.map_err(
 3487   3469   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 3488   3470   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 3489   3471   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 3490   3472   
            },
 3491   3473   
        );
 3492   3474   
        KitchenSinkOperationInputFuture {
 3493   3475   
            inner: Box::pin(fut),
@@ -11963,11945 +12023,12004 @@
11983  11965   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
11984  11966   
        let fut = async move {
11985  11967   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
11986  11968   
                request.headers(),
11987  11969   
                &CONTENT_TYPE_EMPTYOPERATION,
11988  11970   
            ) {
11989  11971   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
11990  11972   
            }
11991  11973   
            crate::protocol_serde::shape_empty_operation::de_empty_operation_http_request(request)
11992  11974   
                .await
11993         -
                .map_err(Into::into)
11994  11975   
        };
11995  11976   
        use ::futures_util::future::TryFutureExt;
11996  11977   
        let fut = fut.map_err(
11997  11978   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
11998  11979   
                ::tracing::debug!(error = %e, "failed to deserialize request");
11999  11980   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
12000  11981   
            },
12001  11982   
        );
12002  11983   
        EmptyOperationInputFuture {
12003  11984   
            inner: Box::pin(fut),

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

@@ -22,22 +82,81 @@
   42     42   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   43     43   
        let fut = async move {
   44     44   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
   45     45   
                request.headers(),
   46     46   
                &CONTENT_TYPE_RESPONSECODEDEFAULTOPERATION,
   47     47   
            ) {
   48     48   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
   49     49   
            }
   50     50   
            crate::protocol_serde::shape_response_code_default_operation::de_response_code_default_operation_http_request(request)
   51     51   
                            .await
   52         -
                            .map_err(Into::into)
   53     52   
        };
   54     53   
        use ::futures_util::future::TryFutureExt;
   55     54   
        let fut = fut.map_err(
   56     55   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
   57     56   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   58     57   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
   59     58   
                    e,
   60     59   
                )
   61     60   
            },
   62     61   
        );
@@ -122,121 +182,180 @@
  142    141   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  143    142   
        let fut = async move {
  144    143   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  145    144   
                request.headers(),
  146    145   
                &CONTENT_TYPE_RESPONSECODEHTTPFALLBACKOPERATION,
  147    146   
            ) {
  148    147   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  149    148   
            }
  150    149   
            crate::protocol_serde::shape_response_code_http_fallback_operation::de_response_code_http_fallback_operation_http_request(request)
  151    150   
                            .await
  152         -
                            .map_err(Into::into)
  153    151   
        };
  154    152   
        use ::futures_util::future::TryFutureExt;
  155    153   
        let fut = fut.map_err(
  156    154   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  157    155   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  158    156   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  159    157   
                    e,
  160    158   
                )
  161    159   
            },
  162    160   
        );
@@ -227,225 +287,284 @@
  247    245   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  248    246   
        let fut = async move {
  249    247   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  250    248   
                request.headers(),
  251    249   
                &CONTENT_TYPE_RESPONSECODEREQUIREDOPERATION,
  252    250   
            ) {
  253    251   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  254    252   
            }
  255    253   
            crate::protocol_serde::shape_response_code_required_operation::de_response_code_required_operation_http_request(request)
  256    254   
                            .await
  257         -
                            .map_err(Into::into)
  258    255   
        };
  259    256   
        use ::futures_util::future::TryFutureExt;
  260    257   
        let fut = fut.map_err(
  261    258   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  262    259   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  263    260   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  264    261   
                    e,
  265    262   
                )
  266    263   
            },
  267    264   
        );
@@ -332,329 +392,388 @@
  352    349   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  353    350   
        let fut = async move {
  354    351   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  355    352   
                request.headers(),
  356    353   
                &CONTENT_TYPE_REQUIREDHEADERCOLLECTIONOPERATION,
  357    354   
            ) {
  358    355   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  359    356   
            }
  360    357   
            crate::protocol_serde::shape_required_header_collection_operation::de_required_header_collection_operation_http_request(request)
  361    358   
                            .await
  362         -
                            .map_err(Into::into)
  363    359   
        };
  364    360   
        use ::futures_util::future::TryFutureExt;
  365    361   
        let fut = fut.map_err(
  366    362   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  367    363   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  368    364   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  369    365   
                    e,
  370    366   
                )
  371    367   
            },
  372    368   
        );
@@ -432,428 +492,487 @@
  452    448   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  453    449   
        let fut = async move {
  454    450   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  455    451   
                request.headers(),
  456    452   
                &CONTENT_TYPE_REQUIREDINNERSHAPEOPERATION,
  457    453   
            ) {
  458    454   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  459    455   
            }
  460    456   
            crate::protocol_serde::shape_required_inner_shape_operation::de_required_inner_shape_operation_http_request(request)
  461    457   
                            .await
  462         -
                            .map_err(Into::into)
  463    458   
        };
  464    459   
        use ::futures_util::future::TryFutureExt;
  465    460   
        let fut = fut.map_err(
  466    461   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  467    462   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  468    463   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  469    464   
                    e,
  470    465   
                )
  471    466   
            },
  472    467   
        );
@@ -532,527 +592,586 @@
  552    547   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  553    548   
        let fut = async move {
  554    549   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  555    550   
                request.headers(),
  556    551   
                &CONTENT_TYPE_TYPECOMPLEXITYOPERATION,
  557    552   
            ) {
  558    553   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  559    554   
            }
  560    555   
            crate::protocol_serde::shape_type_complexity_operation::de_type_complexity_operation_http_request(request)
  561    556   
                            .await
  562         -
                            .map_err(Into::into)
  563    557   
        };
  564    558   
        use ::futures_util::future::TryFutureExt;
  565    559   
        let fut = fut.map_err(
  566    560   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  567    561   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  568    562   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  569    563   
                    e,
  570    564   
                )
  571    565   
            },
  572    566   
        );

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

@@ -24,24 +86,84 @@
   44     44   
    type Future = DoNothingInputFuture;
   45     45   
   46     46   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   47     47   
        let fut = async move {
   48     48   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
   49     49   
                request.headers(),
   50     50   
                &CONTENT_TYPE_DONOTHING,
   51     51   
            ) {
   52     52   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
   53     53   
            }
   54         -
            crate::protocol_serde::shape_do_nothing::de_do_nothing_http_request(request)
   55         -
                .await
   56         -
                .map_err(Into::into)
          54  +
            crate::protocol_serde::shape_do_nothing::de_do_nothing_http_request(request).await
   57     55   
        };
   58     56   
        use ::futures_util::future::TryFutureExt;
   59     57   
        let fut = fut.map_err(
   60     58   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
   61     59   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   62     60   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
   63     61   
            },
   64     62   
        );
   65     63   
        DoNothingInputFuture {
   66     64   
            inner: Box::pin(fut),

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

@@ -24,24 +86,84 @@
   44     44   
    type Future = RpcEchoInputFuture;
   45     45   
   46     46   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   47     47   
        let fut = async move {
   48     48   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
   49     49   
                request.headers(),
   50     50   
                &CONTENT_TYPE_RPCECHO,
   51     51   
            ) {
   52     52   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
   53     53   
            }
   54         -
            crate::protocol_serde::shape_rpc_echo::de_rpc_echo_http_request(request)
   55         -
                .await
   56         -
                .map_err(Into::into)
          54  +
            crate::protocol_serde::shape_rpc_echo::de_rpc_echo_http_request(request).await
   57     55   
        };
   58     56   
        use ::futures_util::future::TryFutureExt;
   59     57   
        let fut = fut.map_err(
   60     58   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
   61     59   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   62     60   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
   63     61   
            },
   64     62   
        );
   65     63   
        RpcEchoInputFuture {
   66     64   
            inner: Box::pin(fut),
@@ -140,138 +202,198 @@
  160    158   
    type Future = MatchInputFuture;
  161    159   
  162    160   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  163    161   
        let fut = async move {
  164    162   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  165    163   
                request.headers(),
  166    164   
                &CONTENT_TYPE_MATCH,
  167    165   
            ) {
  168    166   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  169    167   
            }
  170         -
            crate::protocol_serde::shape_match::de_match_http_request(request)
  171         -
                .await
  172         -
                .map_err(Into::into)
         168  +
            crate::protocol_serde::shape_match::de_match_http_request(request).await
  173    169   
        };
  174    170   
        use ::futures_util::future::TryFutureExt;
  175    171   
        let fut = fut.map_err(
  176    172   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  177    173   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  178    174   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  179    175   
            },
  180    176   
        );
  181    177   
        MatchInputFuture {
  182    178   
            inner: Box::pin(fut),
@@ -256,252 +318,312 @@
  276    272   
    type Future = OptionInputFuture;
  277    273   
  278    274   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  279    275   
        let fut = async move {
  280    276   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  281    277   
                request.headers(),
  282    278   
                &CONTENT_TYPE_OPTION,
  283    279   
            ) {
  284    280   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  285    281   
            }
  286         -
            crate::protocol_serde::shape_option::de_option_http_request(request)
  287         -
                .await
  288         -
                .map_err(Into::into)
         282  +
            crate::protocol_serde::shape_option::de_option_http_request(request).await
  289    283   
        };
  290    284   
        use ::futures_util::future::TryFutureExt;
  291    285   
        let fut = fut.map_err(
  292    286   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  293    287   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  294    288   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  295    289   
            },
  296    290   
        );
  297    291   
        OptionInputFuture {
  298    292   
            inner: Box::pin(fut),
@@ -346,340 +408,400 @@
  366    360   
    type Future = ResultInputFuture;
  367    361   
  368    362   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  369    363   
        let fut = async move {
  370    364   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  371    365   
                request.headers(),
  372    366   
                &CONTENT_TYPE_RESULT,
  373    367   
            ) {
  374    368   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  375    369   
            }
  376         -
            crate::protocol_serde::shape_result::de_result_http_request(request)
  377         -
                .await
  378         -
                .map_err(Into::into)
         370  +
            crate::protocol_serde::shape_result::de_result_http_request(request).await
  379    371   
        };
  380    372   
        use ::futures_util::future::TryFutureExt;
  381    373   
        let fut = fut.map_err(
  382    374   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  383    375   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  384    376   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  385    377   
            },
  386    378   
        );
  387    379   
        ResultInputFuture {
  388    380   
            inner: Box::pin(fut),
@@ -439,431 +499,490 @@
  459    451   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  460    452   
        let fut = async move {
  461    453   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  462    454   
                request.headers(),
  463    455   
                &CONTENT_TYPE_ERRCOLLISIONS,
  464    456   
            ) {
  465    457   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  466    458   
            }
  467    459   
            crate::protocol_serde::shape_err_collisions::de_err_collisions_http_request(request)
  468    460   
                .await
  469         -
                .map_err(Into::into)
  470    461   
        };
  471    462   
        use ::futures_util::future::TryFutureExt;
  472    463   
        let fut = fut.map_err(
  473    464   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  474    465   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  475    466   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  476    467   
            },
  477    468   
        );
  478    469   
        ErrCollisionsInputFuture {
  479    470   
            inner: Box::pin(fut),
@@ -556,547 +616,606 @@
  576    567   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  577    568   
        let fut = async move {
  578    569   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  579    570   
                request.headers(),
  580    571   
                &CONTENT_TYPE_STRUCTURENAMEPUNNING,
  581    572   
            ) {
  582    573   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  583    574   
            }
  584    575   
            crate::protocol_serde::shape_structure_name_punning::de_structure_name_punning_http_request(request)
  585    576   
                            .await
  586         -
                            .map_err(Into::into)
  587    577   
        };
  588    578   
        use ::futures_util::future::TryFutureExt;
  589    579   
        let fut = fut.map_err(
  590    580   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  591    581   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  592    582   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  593    583   
            },
  594    584   
        );
  595    585   
        StructureNamePunningInputFuture {
  596    586   
            inner: Box::pin(fut),
@@ -693,683 +753,742 @@
  713    703   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  714    704   
        let fut = async move {
  715    705   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  716    706   
                request.headers(),
  717    707   
                &CONTENT_TYPE_RESERVEDWORDSASMEMBERS,
  718    708   
            ) {
  719    709   
                return Err(::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  720    710   
            }
  721    711   
            crate::protocol_serde::shape_reserved_words_as_members::de_reserved_words_as_members_http_request(request)
  722    712   
                            .await
  723         -
                            .map_err(Into::into)
  724    713   
        };
  725    714   
        use ::futures_util::future::TryFutureExt;
  726    715   
        let fut = fut.map_err(
  727    716   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  728    717   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  729    718   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  730    719   
            },
  731    720   
        );
  732    721   
        ReservedWordsAsMembersInputFuture {
  733    722   
            inner: Box::pin(fut),