mirror of
https://github.com/tokio-rs/axum.git
synced 2026-08-26 00:00:23 +02:00
Add support for extracting typed headers (#18)
Uses the `headers` crate.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
//! Rejection response types.
|
||||
|
||||
use http::StatusCode;
|
||||
use tower::BoxError;
|
||||
|
||||
use super::IntoResponse;
|
||||
@@ -341,3 +342,22 @@ where
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Rejection used for [`TypedHeader`](super::TypedHeader).
|
||||
#[cfg(feature = "headers")]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
|
||||
#[derive(Debug)]
|
||||
pub struct TypedHeaderRejection {
|
||||
pub(super) name: &'static http::header::HeaderName,
|
||||
pub(super) err: headers::Error,
|
||||
}
|
||||
|
||||
#[cfg(feature = "headers")]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
|
||||
impl IntoResponse for TypedHeaderRejection {
|
||||
fn into_response(self) -> http::Response<Body> {
|
||||
let mut res = format!("{} ({})", self.err, self.name).into_response();
|
||||
*res.status_mut() = StatusCode::BAD_REQUEST;
|
||||
res
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user