Struct MultipartConfig
pub struct MultipartConfig { /* private fields */ }http and multipart only.Expand description
Per-field size constraints for Multipart.
Insert a MultipartConfig as a request extension via a layer to apply
project-wide limits, or pass it to
Multipart::from_body_with_config for direct programmatic use.
Combining sources is opt-in. When multiple MultipartConfig
extensions are inserted on the same request, the extractor reads the
most-recently-inserted one — earlier values are not auto-merged.
To compose limits across layers (and have the lowest value per field
win), call merge_floor explicitly in the
inserting middleware before storing the resulting config.
The total payload size is governed by the standard body limit and is not configured here.
Implementations§
§impl MultipartConfig
impl MultipartConfig
pub fn new() -> MultipartConfig
pub fn new() -> MultipartConfig
Create an empty config. No limits are applied unless set via the builder methods.
pub fn maybe_with_default_field_limit(
self,
limit: Option<u64>,
) -> MultipartConfig
pub fn maybe_with_default_field_limit( self, limit: Option<u64>, ) -> MultipartConfig
Default per-field byte limit applied when no field-specific limit overrides it.
pub fn maybe_set_default_field_limit(
&mut self,
limit: Option<u64>,
) -> &mut MultipartConfig
pub fn maybe_set_default_field_limit( &mut self, limit: Option<u64>, ) -> &mut MultipartConfig
Default per-field byte limit applied when no field-specific limit overrides it.
pub fn with_default_field_limit(self, limit: u64) -> MultipartConfig
pub fn with_default_field_limit(self, limit: u64) -> MultipartConfig
Default per-field byte limit applied when no field-specific limit overrides it.
pub fn set_default_field_limit(&mut self, limit: u64) -> &mut MultipartConfig
pub fn set_default_field_limit(&mut self, limit: u64) -> &mut MultipartConfig
Default per-field byte limit applied when no field-specific limit overrides it.
pub fn without_default_field_limit(self) -> MultipartConfig
pub fn without_default_field_limit(self) -> MultipartConfig
Default per-field byte limit applied when no field-specific limit overrides it.
pub fn unset_default_field_limit(&mut self) -> &mut MultipartConfig
pub fn unset_default_field_limit(&mut self) -> &mut MultipartConfig
Default per-field byte limit applied when no field-specific limit overrides it.
pub fn with_field_limit(
self,
name: impl Into<Cow<'static, str>>,
limit: u64,
) -> MultipartConfig
pub fn with_field_limit( self, name: impl Into<Cow<'static, str>>, limit: u64, ) -> MultipartConfig
Set a byte limit for a specific field by name.
pub fn set_field_limit(
&mut self,
name: impl Into<Cow<'static, str>>,
limit: u64,
) -> &mut MultipartConfig
pub fn set_field_limit( &mut self, name: impl Into<Cow<'static, str>>, limit: u64, ) -> &mut MultipartConfig
Set a byte limit for a specific field by name.
pub fn merge_floor(&mut self, other: &MultipartConfig)
pub fn merge_floor(&mut self, other: &MultipartConfig)
Merge another configuration into this one using a floor: for every limit set in either source, keep the lower value.
Trait Implementations§
§impl Clone for MultipartConfig
impl Clone for MultipartConfig
§fn clone(&self) -> MultipartConfig
fn clone(&self) -> MultipartConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for MultipartConfig
impl Debug for MultipartConfig
§impl Default for MultipartConfig
impl Default for MultipartConfig
§fn default() -> MultipartConfig
fn default() -> MultipartConfig
impl Extension for MultipartConfig
impl HttpExtension for MultipartConfig
Auto Trait Implementations§
impl Freeze for MultipartConfig
impl RefUnwindSafe for MultipartConfig
impl Send for MultipartConfig
impl Sync for MultipartConfig
impl Unpin for MultipartConfig
impl UnsafeUnpin for MultipartConfig
impl UnwindSafe for MultipartConfig
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
§impl<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
value to writer§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
value to writer§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
value to writer§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
value to writer§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
value to writer