david-perez
david-perez
We code-generate Nom parsers to parse URI request paths. The number of labels that can appear is limited to 21, because of [`tuple`](https://docs.rs/nom/latest/nom/sequence/fn.tuple.html). If someone models a route with more...
When generating an HTTP request test case, we code-generate an operation handler that returns "dummy" operation output, just so the test compiles. We do so very naively by filling out...
This bug affects both clients and servers. Consider: ```smithy $version: "2.0" namespace com.amazonaws.simple use aws.protocols#restJson1 use smithy.test#httpRequestTests use smithy.test#httpResponseTests @restJson1 service SimpleService { operations: [ Operation ] } @http(uri: "/operation",...
When there is operation input: ```smithy $version: "2.0" namespace com.amazonaws.simple use aws.protocols#restJson1 use smithy.test#httpMalformedRequestTests @restJson1 service SimpleService { operations: [ Operation ] } @http(uri: "/operation", method: "POST") operation Operation {...
We're currently serializing server framework-level errors manually. We're doing this for each protocol. For example, for `restJson1`: https://github.com/smithy-lang/smithy-rs/blob/b74887861280ec475db984f9a7603eebb4d959b9/rust-runtime/aws-smithy-http-server/src/protocol/rest_json_1/runtime_error.rs#L92-L108 Instead of manually writing this serialization code, we should model these errors...
Currently, we re-parse expected request `Content-Type` header values into `mime::Mime`s every time we service a request. It'd be more efficient if `aws_smithy_http_server::protocol::content_type_header_classifier_smithy` took in directly a `const` `Mime` type. Note...
In the server we have this [handy `OperationShape` trait](https://docs.rs/aws-smithy-http-server/latest/aws_smithy_http_server/operation/trait.OperationShape.html) that we implement on operation shapes. Among other things, it has a `const ID` that allows one to retrieve the shape...
We add [`#[non_exhaustive]`](https://doc.rust-lang.org/reference/attributes/type_system.html) to client structures and builders, despite their fields being `pub(crate)`, to prevent users from instantiating them using struct expressions in the case where they don't contain any...
`Rc`, `Arc`, and `Box`. Closes #506.
[`metrics_util::layers::RouterBuilder::add_route`](https://docs.rs/metrics-util/latest/metrics_util/layers/struct.RouterBuilder.html#method.add_route) takes ownership of the recorder, which means it can only handle one pattern/mask combination. Could we make it take in an `Iterator` of patterns, or an `Arc`?