pub struct ParserLimits {
pub max_depth: usize,
pub max_input_bytes: usize,
pub max_identifier_chars: usize,
}Expand description
Hard limits enforced by the parser.
The fields are public so the harness module (used by tests in
tests/support/parser_hardening) can mutate them inline. Default
values match production defaults.
Fields§
§max_depth: usizeMaximum recursion depth across recursive descent points (expressions, parenthesised sub-queries, JOIN chains).
max_input_bytes: usizeMaximum input length in bytes. Checked at the lexer entry before tokenization begins.
max_identifier_chars: usizeMaximum identifier length in characters. Checked when an identifier token is constructed in the lexer.
Implementations§
Source§impl ParserLimits
impl ParserLimits
Sourcepub fn permissive() -> ParserLimits
pub fn permissive() -> ParserLimits
Permissive limits for tests that intentionally probe deep nesting or long inputs without tripping DoS guards.
Trait Implementations§
Source§impl Clone for ParserLimits
impl Clone for ParserLimits
Source§fn clone(&self) -> ParserLimits
fn clone(&self) -> ParserLimits
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ParserLimits
impl Debug for ParserLimits
Source§impl Default for ParserLimits
impl Default for ParserLimits
Source§fn default() -> ParserLimits
fn default() -> ParserLimits
Returns the “default value” for a type. Read more
Source§impl PartialEq for ParserLimits
impl PartialEq for ParserLimits
Source§fn eq(&self, other: &ParserLimits) -> bool
fn eq(&self, other: &ParserLimits) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for ParserLimits
impl Eq for ParserLimits
impl StructuralPartialEq for ParserLimits
Auto Trait Implementations§
impl Freeze for ParserLimits
impl RefUnwindSafe for ParserLimits
impl Send for ParserLimits
impl Sync for ParserLimits
impl Unpin for ParserLimits
impl UnsafeUnpin for ParserLimits
impl UnwindSafe for ParserLimits
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
Converts
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>
Converts
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request