http-rs / http-types

Common types for HTTP operations
https://docs.rs/http-types
Apache License 2.0
200 stars 83 forks source link

Implement `Status` for `Result<T, http_types::Error>` #364

Closed pbzweihander closed 2 years ago

pbzweihander commented 3 years ago

It will be very convenient if I can use Status trait for Result<T, http_types::Error> to replace StatusCode.

For example, (in tide)

let body = request.body_json().await.map_err(|mut e| {e.set_status(StatusCode::BadRequest); e})?;
let data = some_function(body).status(StatusCode::NotFound)?;

...will become:

let body = request.body_json().await.status(StatusCode::BadRequest)?;
let data = some_function(body).status(StatusCode::NotFound)?;