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.
Note: ContentLengthLimit
can wrap types that extract the body (for example, Form
or Json
)
if that is the case, the inner type will consume the request’s body, which means the
ContentLengthLimit
must come last if the handler uses several extractors. See
“the order of extractors”
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, S, B, const N: u64> FromRequest<S, B, ViaRequest> for ContentLengthLimit<T, N>where
T: FromRequest<S, B>,
T::Rejection: IntoResponse,
B: Send + 'static,
S: Send + Sync,
impl<T, S, B, const N: u64> FromRequest<S, B, ViaRequest> for ContentLengthLimit<T, N>where
T: FromRequest<S, B>,
T::Rejection: IntoResponse,
B: Send + 'static,
S: Send + Sync,
type Rejection = ContentLengthLimitRejection<<T as FromRequest<S, B, ViaRequest>>::Rejection>
type Rejection = ContentLengthLimitRejection<<T as FromRequest<S, B, ViaRequest>>::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
sourceimpl<T, S, const N: u64> FromRequestParts<S> for ContentLengthLimit<T, N>where
T: FromRequestParts<S>,
T::Rejection: IntoResponse,
S: Send + Sync,
impl<T, S, const N: u64> FromRequestParts<S> for ContentLengthLimit<T, N>where
T: FromRequestParts<S>,
T::Rejection: IntoResponse,
S: Send + Sync,
type Rejection = ContentLengthLimitRejection<<T as FromRequestParts<S>>::Rejection>
type Rejection = ContentLengthLimitRejection<<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. Read more
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 Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
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<S, B, T> FromRequest<S, B, ViaParts> for Twhere
B: 'static + Send,
S: Send + Sync,
T: FromRequestParts<S>,
impl<S, B, T> FromRequest<S, B, ViaParts> for Twhere
B: 'static + Send,
S: Send + Sync,
T: FromRequestParts<S>,
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. 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>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more