Struct axum_extra::extract::WithRejection
source · pub struct WithRejection<E, R>(pub E, pub PhantomData<R>);
Expand description
Extractor for customizing extractor rejections
WithRejection
wraps another extractor and gives you the result. If the
extraction fails, the Rejection
is transformed into R
and returned as a
response
E
is expected to implement FromRequest
R
is expected to implement IntoResponse
and From<E::Rejection>
§Example
use axum::extract::rejection::JsonRejection;
use axum::response::{Response, IntoResponse};
use axum::Json;
use axum_extra::extract::WithRejection;
use serde::Deserialize;
struct MyRejection { /* ... */ }
impl From<JsonRejection> for MyRejection {
fn from(rejection: JsonRejection) -> MyRejection {
// ...
}
}
impl IntoResponse for MyRejection {
fn into_response(self) -> Response {
// ...
}
}
#[derive(Debug, Deserialize)]
struct Person { /* ... */ }
async fn handler(
// If the `Json` extractor ever fails, `MyRejection` will be sent to the
// client using the `IntoResponse` impl
WithRejection(Json(Person), _): WithRejection<Json<Person>, MyRejection>
) { /* ... */ }
Tuple Fields§
§0: E
§1: PhantomData<R>
Implementations§
source§impl<E, R> WithRejection<E, R>
impl<E, R> WithRejection<E, R>
sourcepub fn into_inner(self) -> E
pub fn into_inner(self) -> E
Returns the wrapped extractor
Trait Implementations§
source§impl<E, R> Clone for WithRejection<E, R>where
E: Clone,
impl<E, R> Clone for WithRejection<E, R>where
E: Clone,
source§impl<E, R> Debug for WithRejection<E, R>where
E: Debug,
impl<E, R> Debug for WithRejection<E, R>where
E: Debug,
source§impl<E: Default, R> Default for WithRejection<E, R>
impl<E: Default, R> Default for WithRejection<E, R>
source§impl<E, R> Deref for WithRejection<E, R>
impl<E, R> Deref for WithRejection<E, R>
source§impl<E, R> DerefMut for WithRejection<E, R>
impl<E, R> DerefMut for WithRejection<E, R>
source§impl<E, R> Display for WithRejection<E, R>where
E: Display,
impl<E, R> Display for WithRejection<E, R>where
E: Display,
source§impl<E, R, S> FromRequest<S> for WithRejection<E, R>
impl<E, R, S> FromRequest<S> for WithRejection<E, R>
source§impl<E, R, S> FromRequestParts<S> for WithRejection<E, R>
impl<E, R, S> FromRequestParts<S> for WithRejection<E, R>
impl<E, R> Copy for WithRejection<E, R>where
E: Copy,
Auto Trait Implementations§
impl<E, R> Freeze for WithRejection<E, R>where
E: Freeze,
impl<E, R> RefUnwindSafe for WithRejection<E, R>where
E: RefUnwindSafe,
R: RefUnwindSafe,
impl<E, R> Send for WithRejection<E, R>
impl<E, R> Sync for WithRejection<E, R>
impl<E, R> Unpin for WithRejection<E, R>
impl<E, R> UnwindSafe for WithRejection<E, R>where
E: UnwindSafe,
R: 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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<S, T> FromRequest<S, ViaParts> for T
impl<S, T> FromRequest<S, ViaParts> for T
§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.