Trait FromRequest
pub trait FromRequest<S, M = ViaRequest>: Sized
Types that can be created from requests.
Extractors that implement FromRequest can consume the request body and can thus only be run
once for handlers.
If your extractor doesn't need to consume the request body then you should implement
FromRequestParts and not FromRequest.
See axum::extract for more general docs about extractors.
Associated Types
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
fn from_request(req: Request, state: &S) -> impl Future<Output = Result<Self, Self::Rejection>> + SendPerform the extraction.
Implementors
impl<S> FromRequest<S> for Body where S: Send + Sync,impl<S> FromRequest<S> for Bytes where S: Send + Sync,impl<S> FromRequest<S> for BytesMut where S: Send + Sync,impl<S> FromRequest<S> for Request where S: Send + Sync,impl<S> FromRequest<S> for String where S: Send + Sync,impl<S, T> FromRequest<S> for Option<T> where T: OptionalFromRequest<S>, S: Send + Sync,impl<S, T> FromRequest<S> for Result<T, T::Rejection> where T: FromRequest<S>, S: Send + Sync,impl<S, T1> FromRequest<S> for (T1,) where T1: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2> FromRequest<S> for (T1, T2) where T1: FromRequestParts<S> + Send, T2: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3> FromRequest<S> for (T1, T2, T3) where T1: FromRequestParts<S> + Send, T2: FromRequestParts<S> + Send, T3: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4> FromRequest<S> for (T1, T2, T3, T4) where T1: FromRequestParts<S> + Send, T2: FromRequestParts<S> + Send, T3: FromRequestParts<S> + Send, T4: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4, T5> FromRequest<S> for (T1, T2, T3, T4, T5) where T1: FromRequestParts<S> + Send, T2: FromRequestParts<S> + Send, T3: FromRequestParts<S> + Send, T4: FromRequestParts<S> + Send, T5: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4, T5, T6> FromRequest<S> for (T1, T2, T3, T4, T5, T6) where T1: FromRequestParts<S> + Send, T2: FromRequestParts<S> + Send, T3: FromRequestParts<S> + Send, T4: FromRequestParts<S> + Send, T5: FromRequestParts<S> + Send, T6: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4, T5, T6, T7> FromRequest<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: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4, T5, T6, T7, T8> FromRequest<S> for (T1, T2, T3, T4, T5, T6, T7, T8) 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: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9> FromRequest<S> for (T1, T2, T3, T4, T5, T6, T7, T8, T9) 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: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> FromRequest<S> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) 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: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> FromRequest<S> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) 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: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> FromRequest<S> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) 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: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> FromRequest<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: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> FromRequest<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: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> FromRequest<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: FromRequest<S> + Send, S: Send + Sync,impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> FromRequest<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: FromRequest<S> + Send, S: Send + Sync,