Struct axum::extract::ContentLengthLimit
source · [−]pub struct ContentLengthLimit<T, const N: u64>(pub T);
Expand description
Extractor that will reject requests with a body larger than some size.
GET
, HEAD
, and OPTIONS
requests are rejected if they have a Content-Length
header,
otherwise they’re accepted without the body being checked.
Example
use axum::{
extract::ContentLengthLimit,
routing::post,
Router,
};
async fn handler(body: ContentLengthLimit<String, 1024>) {
// ...
}
let app = Router::new().route("/", post(handler));
This requires the request to have a Content-Length
header.
If you want to limit the size of request bodies without requiring a Content-Length
header,
consider using [tower_http::limit::RequestBodyLimitLayer
].
Tuple Fields
0: T
Trait Implementations
sourceimpl<T: Clone, const N: u64> Clone for ContentLengthLimit<T, N>
impl<T: Clone, const N: u64> Clone for ContentLengthLimit<T, N>
sourcefn clone(&self) -> ContentLengthLimit<T, N>
fn clone(&self) -> ContentLengthLimit<T, N>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<T: Debug, const N: u64> Debug for ContentLengthLimit<T, N>
impl<T: Debug, const N: u64> Debug for ContentLengthLimit<T, N>
sourceimpl<T, const N: u64> Deref for ContentLengthLimit<T, N>
impl<T, const N: u64> Deref for ContentLengthLimit<T, N>
sourceimpl<T, B, const N: u64> FromRequest<B> for ContentLengthLimit<T, N> where
T: FromRequest<B>,
T::Rejection: IntoResponse,
B: Send,
impl<T, B, const N: u64> FromRequest<B> for ContentLengthLimit<T, N> where
T: FromRequest<B>,
T::Rejection: IntoResponse,
B: Send,
type Rejection = ContentLengthLimitRejection<<T as FromRequest<B>>::Rejection>
type Rejection = ContentLengthLimitRejection<<T as FromRequest<B>>::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. Read more
sourcefn from_request<'life0, 'async_trait>(
req: &'life0 mut RequestParts<B>
) -> Pin<Box<dyn Future<Output = Result<Self, Self::Rejection>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn from_request<'life0, 'async_trait>(
req: &'life0 mut RequestParts<B>
) -> Pin<Box<dyn Future<Output = Result<Self, Self::Rejection>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Perform the extraction.
Auto Trait Implementations
impl<T, const N: u64> RefUnwindSafe for ContentLengthLimit<T, N> where
T: RefUnwindSafe,
impl<T, const N: u64> Send for ContentLengthLimit<T, N> where
T: Send,
impl<T, const N: u64> Sync for ContentLengthLimit<T, N> where
T: Sync,
impl<T, const N: u64> Unpin for ContentLengthLimit<T, N> where
T: Unpin,
impl<T, const N: u64> UnwindSafe for ContentLengthLimit<T, N> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more