Trait axum::extract::FromRequestParts
source · [−]pub trait FromRequestParts<S> {
type Rejection: IntoResponse;
fn from_request_parts<'life0, 'life1, 'async_trait>(
parts: &'life0 mut Parts,
state: &'life1 S
) -> Pin<Box<dyn Future<Output = Result<Self, Self::Rejection>> + Send + 'async_trait, Global>>
where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
}
Expand description
Types that can be created from request parts.
Extractors that implement FromRequestParts
cannot consume the request body and can thus be
run in any order for handlers.
If your extractor needs to consume the request body then you should implement FromRequest
and not FromRequestParts
.
See axum::extract
for more general docs about extractors.
Required Associated Types
sourcetype Rejection: IntoResponse
type Rejection: IntoResponse
If the extractor fails it’ll use this “rejection” type. A rejection is a kind of error that can be converted into a response.
Required Methods
Implementations on Foreign Types
sourceimpl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> FromRequestParts<S> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)where
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequestParts<S> + Send,
T16: FromRequestParts<S> + Send,
S: Send + Sync,
impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> FromRequestParts<S> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)where
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequestParts<S> + Send,
T16: FromRequestParts<S> + Send,
S: Send + Sync,
type Rejection = Response<UnsyncBoxBody<Bytes, Error>>
fn from_request_parts<'life0, 'life1, 'async_trait>(
parts: &'life0 mut Parts,
state: &'life1 S
) -> Pin<Box<dyn Future<Output = Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16), <(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) as FromRequestParts<S>>::Rejection>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16): 'async_trait,
sourceimpl<S> FromRequestParts<S> for Methodwhere
S: Send + Sync,
impl<S> FromRequestParts<S> for Methodwhere
S: Send + Sync,
type Rejection = Infallible
fn from_request_parts<'life0, 'life1, 'async_trait>(
parts: &'life0 mut Parts,
&'life1 S
) -> Pin<Box<dyn Future<Output = Result<Method, <Method as FromRequestParts<S>>::Rejection>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
Method: 'async_trait,
sourceimpl<S, T> FromRequestParts<S> for Result<T, <T as FromRequestParts<S>>::Rejection>where
T: FromRequestParts<S>,
S: Send + Sync,
impl<S, T> FromRequestParts<S> for Result<T, <T as FromRequestParts<S>>::Rejection>where
T: FromRequestParts<S>,
S: Send + Sync,
type Rejection = Infallible
fn from_request_parts<'life0, 'life1, 'async_trait>(
parts: &'life0 mut Parts,
state: &'life1 S
) -> Pin<Box<dyn Future<Output = Result<Result<T, <T as FromRequestParts<S>>::Rejection>, <Result<T, <T as FromRequestParts<S>>::Rejection> as FromRequestParts<S>>::Rejection>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
Result<T, <T as FromRequestParts<S>>::Rejection>: 'async_trait,
sourceimpl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> FromRequestParts<S> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)where
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
S: Send + Sync,
impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> FromRequestParts<S> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)where
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
S: Send + Sync,
type Rejection = Response<UnsyncBoxBody<Bytes, Error>>
fn from_request_parts<'life0, 'life1, 'async_trait>(
parts: &'life0 mut Parts,
state: &'life1 S
) -> Pin<Box<dyn Future<Output = Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13), <(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) as FromRequestParts<S>>::Rejection>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13): 'async_trait,
sourceimpl<S, T1, T2, T3, T4> FromRequestParts<S> for (T1, T2, T3, T4)where
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
S: Send + Sync,
impl<S, T1, T2, T3, T4> FromRequestParts<S> for (T1, T2, T3, T4)where
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
S: Send + Sync,
type Rejection = Response<UnsyncBoxBody<Bytes, Error>>
fn from_request_parts<'life0, 'life1, 'async_trait>(
parts: &'life0 mut Parts,
state: &'life1 S
) -> Pin<Box<dyn Future<Output = Result<(T1, T2, T3, T4), <(T1, T2, T3, T4) as FromRequestParts<S>>::Rejection>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
(T1, T2, T3, T4): 'async_trait,
sourceimpl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> FromRequestParts<S> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)where
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
S: Send + Sync,
impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> FromRequestParts<S> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)where
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
S: Send + Sync,
type Rejection = Response<UnsyncBoxBody<Bytes, Error>>
fn from_request_parts<'life0, 'life1, 'async_trait>(
parts: &'life0 mut Parts,
state: &'life1 S
) -> Pin<Box<dyn Future<Output = Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14), <(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) as FromRequestParts<S>>::Rejection>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14): 'async_trait,
sourceimpl<S, T1> FromRequestParts<S> for (T1,)where
T1: FromRequestParts<S> + Send,
S: Send + Sync,
impl<S, T1> FromRequestParts<S> for (T1,)where
T1: FromRequestParts<S> + Send,
S: Send + Sync,
type Rejection = Response<UnsyncBoxBody<Bytes, Error>>
fn from_request_parts<'life0, 'life1, 'async_trait>(
parts: &'life0 mut Parts,
state: &'life1 S
) -> Pin<Box<dyn Future<Output = Result<(T1,), <(T1,) as FromRequestParts<S>>::Rejection>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
(T1,): 'async_trait,
sourceimpl<S, T1, T2, T3, T4, T5, T6, T7> FromRequestParts<S> for (T1, T2, T3, T4, T5, T6, T7)where
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
S: Send + Sync,
impl<S, T1, T2, T3, T4, T5, T6, T7> FromRequestParts<S> for (T1, T2, T3, T4, T5, T6, T7)where
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
S: Send + Sync,
type Rejection = Response<UnsyncBoxBody<Bytes, Error>>
fn from_request_parts<'life0, 'life1, 'async_trait>(
parts: &'life0 mut Parts,
state: &'life1 S
) -> Pin<Box<dyn Future<Output = Result<(T1, T2, T3, T4, T5, T6, T7), <(T1, T2, T3, T4, T5, T6, T7) as FromRequestParts<S>>::Rejection>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
(T1, T2, T3, T4, T5, T6, T7): 'async_trait,
sourceimpl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> FromRequestParts<S> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequestParts<S> + Send,
S: Send + Sync,
impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> FromRequestParts<S> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequestParts<S> + Send,
S: Send + Sync,
type Rejection = Response<UnsyncBoxBody<Bytes, Error>>
fn from_request_parts<'life0, 'life1, 'async_trait>(
parts: &'life0 mut Parts,
state: &'life1 S
) -> Pin<Box<dyn Future<Output = Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15), <(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) as FromRequestParts<S>>::Rejection>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15): 'async_trait,
sourceimpl<S, T> FromRequestParts<S> for Option<T>where
T: FromRequestParts<S>,
S: Send + Sync,
impl<S, T> FromRequestParts<S> for Option<T>where
T: FromRequestParts<S>,
S: Send + Sync,
type Rejection = Infallible
fn from_request_parts<'life0, 'life1, 'async_trait>(
parts: &'life0 mut Parts,
state: &'life1 S
) -> Pin<Box<dyn Future<Output = Result<Option<T>, <Option<T> as FromRequestParts<S>>::Rejection>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
Option<T>: 'async_trait,
sourceimpl<S> FromRequestParts<S> for HeaderMap<HeaderValue>where
S: Send + Sync,
impl<S> FromRequestParts<S> for HeaderMap<HeaderValue>where
S: Send + Sync,
Clone the headers from the request.
Prefer using TypedHeader
to extract only the headers you need.