Struct lexa_framework::extract::TypedHeader
source · pub struct TypedHeader<T>(pub T);Expand description
Extractor and response that works with typed header values from headers.
As extractor
In general, it’s recommended to extract only the needed headers via TypedHeader rather than
removing all headers with the HeaderMap extractor.
use axum::{
TypedHeader,
headers::UserAgent,
routing::get,
Router,
};
async fn users_teams_show(
TypedHeader(user_agent): TypedHeader<UserAgent>,
) {
// ...
}
let app = Router::new().route("/users/:user_id/team/:team_id", get(users_teams_show));As response
use axum::{
TypedHeader,
response::IntoResponse,
headers::ContentType,
};
async fn handler() -> (TypedHeader<ContentType>, &'static str) {
(
TypedHeader(ContentType::text_utf8()),
"Hello, World!",
)
}Tuple Fields§
§0: TTrait Implementations§
source§impl<T> Clone for TypedHeader<T>where
T: Clone,
impl<T> Clone for TypedHeader<T>where T: Clone,
source§fn clone(&self) -> TypedHeader<T>
fn clone(&self) -> TypedHeader<T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl<T> Debug for TypedHeader<T>where
T: Debug,
impl<T> Debug for TypedHeader<T>where T: Debug,
source§impl<T> Deref for TypedHeader<T>
impl<T> Deref for TypedHeader<T>
source§impl<T> DerefMut for TypedHeader<T>
impl<T> DerefMut for TypedHeader<T>
source§impl<T, S> FromRequestParts<S> for TypedHeader<T>where
T: Header,
S: Send + Sync,
impl<T, S> FromRequestParts<S> for TypedHeader<T>where T: Header, S: Send + Sync,
§type Rejection = TypedHeaderRejection
type Rejection = TypedHeaderRejection
If the extractor fails it’ll use this “rejection” type. A rejection is
a kind of error that can be converted into a response.
source§fn from_request_parts<'life0, 'life1, 'async_trait>(
parts: &'life0 mut Parts,
_state: &'life1 S
) -> Pin<Box<dyn Future<Output = Result<TypedHeader<T>, <TypedHeader<T> as FromRequestParts<S>>::Rejection>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
TypedHeader<T>: 'async_trait,
fn from_request_parts<'life0, 'life1, 'async_trait>( parts: &'life0 mut Parts, _state: &'life1 S ) -> Pin<Box<dyn Future<Output = Result<TypedHeader<T>, <TypedHeader<T> as FromRequestParts<S>>::Rejection>> + Send + 'async_trait, Global>>where 'life0: 'async_trait, 'life1: 'async_trait, TypedHeader<T>: 'async_trait,
Perform the extraction.
source§impl<T> IntoResponse for TypedHeader<T>where
T: Header,
impl<T> IntoResponse for TypedHeader<T>where T: Header,
source§fn into_response(self) -> Response<UnsyncBoxBody<Bytes, Error>>
fn into_response(self) -> Response<UnsyncBoxBody<Bytes, Error>>
Create a response.
source§impl<T> IntoResponseParts for TypedHeader<T>where
T: Header,
impl<T> IntoResponseParts for TypedHeader<T>where T: Header,
§type Error = Infallible
type Error = Infallible
The type returned in the event of an error. Read more
source§fn into_response_parts(
self,
res: ResponseParts
) -> Result<ResponseParts, <TypedHeader<T> as IntoResponseParts>::Error>
fn into_response_parts( self, res: ResponseParts ) -> Result<ResponseParts, <TypedHeader<T> as IntoResponseParts>::Error>
Set parts of the response
impl<T> Copy for TypedHeader<T>where T: Copy,
Auto Trait Implementations§
impl<T> RefUnwindSafe for TypedHeader<T>where T: RefUnwindSafe,
impl<T> Send for TypedHeader<T>where T: Send,
impl<T> Sync for TypedHeader<T>where T: Sync,
impl<T> Unpin for TypedHeader<T>where T: Unpin,
impl<T> UnwindSafe for TypedHeader<T>where T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T, A> DynAccess<T> for Awhere
A: Access<T>,
<A as Access<T>>::Guard: 'static,
impl<T, A> DynAccess<T> for Awhere A: Access<T>, <A as Access<T>>::Guard: 'static,
§impl<S, B, T> FromRequest<S, B, ViaParts> for Twhere
B: Send + 'static,
S: Send + Sync,
T: FromRequestParts<S>,
impl<S, B, T> FromRequest<S, B, ViaParts> for Twhere B: Send + 'static, S: Send + Sync, T: FromRequestParts<S>,
§type Rejection = <T as FromRequestParts<S>>::Rejection
type Rejection = <T as FromRequestParts<S>>::Rejection
If the extractor fails it’ll use this “rejection” type. A rejection is
a kind of error that can be converted into a response.
source§impl<T, S, B> Handler<IntoResponseHandler, S, B> for Twhere
T: IntoResponse + Clone + Send + 'static,
B: Send + 'static,
impl<T, S, B> Handler<IntoResponseHandler, S, B> for Twhere T: IntoResponse + Clone + Send + 'static, B: Send + 'static,
§type Future = Ready<Response<UnsyncBoxBody<Bytes, Error>>>
type Future = Ready<Response<UnsyncBoxBody<Bytes, Error>>>
The type of future calling this handler returns.
source§fn call(
self,
_req: Request<B>,
_state: S
) -> <T as Handler<IntoResponseHandler, S, B>>::Future
fn call( self, _req: Request<B>, _state: S ) -> <T as Handler<IntoResponseHandler, S, B>>::Future
Call the handler with the given request.
source§fn layer<L, NewReqBody>(self, layer: L) -> Layered<L, Self, T, S, B, NewReqBody>where
L: Layer<HandlerService<Self, T, S, B>> + Clone,
<L as Layer<HandlerService<Self, T, S, B>>>::Service: Service<Request<NewReqBody>>,
fn layer<L, NewReqBody>(self, layer: L) -> Layered<L, Self, T, S, B, NewReqBody>where L: Layer<HandlerService<Self, T, S, B>> + Clone, <L as Layer<HandlerService<Self, T, S, B>>>::Service: Service<Request<NewReqBody>>,
Apply a [
tower::Layer] to the handler. Read moresource§fn with_state(self, state: S) -> HandlerService<Self, T, S, B>
fn with_state(self, state: S) -> HandlerService<Self, T, S, B>
Convert the handler into a [
Service] by providing the statesource§impl<H, T, B> HandlerWithoutStateExt<T, B> for Hwhere
H: Handler<T, (), B>,
impl<H, T, B> HandlerWithoutStateExt<T, B> for Hwhere H: Handler<T, (), B>,
source§fn into_service(self) -> HandlerService<H, T, (), B>
fn into_service(self) -> HandlerService<H, T, (), B>
Convert the handler into a [
Service] and no state.source§fn into_make_service(self) -> IntoMakeService<HandlerService<H, T, (), B>>
fn into_make_service(self) -> IntoMakeService<HandlerService<H, T, (), B>>
Convert the handler into a
MakeService and no state. Read moresource§fn into_make_service_with_connect_info<C>(
self
) -> IntoMakeServiceWithConnectInfo<HandlerService<H, T, (), B>, C>
fn into_make_service_with_connect_info<C>( self ) -> IntoMakeServiceWithConnectInfo<HandlerService<H, T, (), B>, C>
Convert the handler into a
MakeService which stores information
about the incoming connection and has no state. Read more