Skip to main content

ParseLimits

Struct ParseLimits 

Source
#[non_exhaustive]
pub struct ParseLimits { pub max_depth: u32, pub max_items: u32, pub max_expanded_bytes: u64, }
Expand description

Ceilings a handler applies while parsing.

Separate from crate::io::Limits, which bounds how much is read. These bound what a parser will do with what it read — the difference between refusing a 4 GB file and refusing a 4 KB file that describes four billion objects.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§max_depth: u32

Maximum nesting depth.

Stack overflow aborts the process; it is not a catchable panic, so it cannot be handled after the fact and must be prevented by construction (docs/ARCHITECTURE.md §5.1).

§max_items: u32

Maximum number of structural items — objects, segments, chunks — in one file.

§max_expanded_bytes: u64

Maximum bytes a single compressed structure may expand to.

Reserved: no handler in this release uses it. Neither PNG nor WebP decompresses anything — PNG’s compressed text chunks are removed without being inflated (ADR-0022) — and the PDF handler declines to inflate a filtered metadata stream for the same reason. It is kept rather than removed because Phase 2’s ZIP-container formats cannot be attempted without it, and because a limit that exists is easier to review than one invented under deadline. It is documented as reserved rather than left looking enforced.

Trait Implementations§

Source§

impl Clone for ParseLimits

Source§

fn clone(&self) -> ParseLimits

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for ParseLimits

Source§

impl Debug for ParseLimits

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ParseLimits

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for ParseLimits

Source§

impl PartialEq for ParseLimits

Source§

fn eq(&self, other: &ParseLimits) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ParseLimits

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.