mirror of
https://github.com/tokio-rs/axum.git
synced 2026-09-08 00:00:24 +02:00
77 lines
2.2 KiB
Rust
77 lines
2.2 KiB
Rust
//! Rejection response types.
|
|||
|
|
|
||
|
|
define_rejection! {
|
||
|
|
#[status = INTERNAL_SERVER_ERROR]
|
||
|
|
#[body = "Cannot have two request body extractors for a single handler"]
|
||
|
|
/// Rejection type used if you try and extract the request body more than
|
||
|
|
/// once.
|
||
|
|
pub struct BodyAlreadyExtracted;
|
||
|
|
}
|
||
|
|
|
||
|
|
define_rejection! {
|
||
|
|
#[status = INTERNAL_SERVER_ERROR]
|
||
|
|
#[body = "Extensions taken by other extractor"]
|
||
|
|
/// Rejection used if the request extension has been taken by another
|
||
|
|
/// extractor.
|
||
|
|
pub struct ExtensionsAlreadyExtracted;
|
||
|
|
}
|
||
|
|
|
||
|
|
define_rejection! {
|
||
|
|
#[status = BAD_REQUEST]
|
||
|
|
#[body = "Failed to buffer the request body"]
|
||
|
|
/// Rejection type for extractors that buffer the request body. Used if the
|
||
|
|
/// request body cannot be buffered due to an error.
|
||
|
|
pub struct FailedToBufferBody(Error);
|
||
|
|
}
|
||
|
|
|
||
|
|
define_rejection! {
|
||
|
|
#[status = BAD_REQUEST]
|
||
|
|
#[body = "Request body didn't contain valid UTF-8"]
|
||
|
|
/// Rejection type used when buffering the request into a [`String`] if the
|
||
|
|
/// body doesn't contain valid UTF-8.
|
||
|
|
pub struct InvalidUtf8(Error);
|
||
|
|
}
|
||
|
|
|
||
|
|
composite_rejection! {
|
||
|
|
/// Rejection used for [`Request<_>`].
|
||
|
|
///
|
||
|
|
/// Contains one variant for each way the [`Request<_>`] extractor can fail.
|
||
|
|
///
|
||
|
|
/// [`Request<_>`]: http::Request
|
||
|
|
pub enum RequestAlreadyExtracted {
|
||
|
|
BodyAlreadyExtracted,
|
||
|
|
ExtensionsAlreadyExtracted,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
composite_rejection! {
|
||
|
|
/// Rejection used for [`Bytes`](bytes::Bytes).
|
||
|
|
///
|
||
|
|
/// Contains one variant for each way the [`Bytes`](bytes::Bytes) extractor
|
||
|
|
/// can fail.
|
||
|
|
pub enum BytesRejection {
|
||
|
|
BodyAlreadyExtracted,
|
||
|
|
FailedToBufferBody,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
composite_rejection! {
|
||
|
|
/// Rejection used for [`String`].
|
||
|
|
///
|
||
|
|
/// Contains one variant for each way the [`String`] extractor can fail.
|
||
|
|
pub enum StringRejection {
|
||
|
|
BodyAlreadyExtracted,
|
||
|
|
FailedToBufferBody,
|
||
|
|
InvalidUtf8,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
composite_rejection! {
|
||
|
|
/// Rejection used for [`http::request::Parts`].
|
||
|
|
///
|
||
|
|
/// Contains one variant for each way the [`http::request::Parts`] extractor can fail.
|
||
|
|
pub enum RequestPartsAlreadyExtracted {
|
||
|
|
ExtensionsAlreadyExtracted,
|
||
|
|
}
|
||
|
|
}
|