pub struct QueryLimits {
pub max_depth: usize,
pub max_complexity: usize,
pub max_query_size: usize,
pub max_field_count: usize,
}Expand description
Configuration for GraphQL query protection limits.
Controls query depth, complexity, size, and field count limits to prevent denial-of-service attacks through resource exhaustion.
§Examples
use reinhardt_graphql::schema::QueryLimits;
// Use defaults
let limits = QueryLimits::default();
assert_eq!(limits.max_depth, 10);
assert_eq!(limits.max_complexity, 100);
assert_eq!(limits.max_query_size, 32_768);
assert_eq!(limits.max_field_count, 200);
// Custom limits
let limits = QueryLimits::new(15, 200);
assert_eq!(limits.max_depth, 15);
assert_eq!(limits.max_complexity, 200);Fields§
§max_depth: usizeMaximum allowed query depth
max_complexity: usizeMaximum allowed query complexity
max_query_size: usizeMaximum allowed query string size in bytes
max_field_count: usizeMaximum allowed number of fields in a query
Implementations§
Trait Implementations§
Source§impl Clone for QueryLimits
impl Clone for QueryLimits
Source§fn clone(&self) -> QueryLimits
fn clone(&self) -> QueryLimits
Returns a duplicate of the value. Read more
1.0.0 · 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 QueryLimits
impl Debug for QueryLimits
Source§impl Default for QueryLimits
impl Default for QueryLimits
impl Copy for QueryLimits
Auto Trait Implementations§
impl Freeze for QueryLimits
impl RefUnwindSafe for QueryLimits
impl Send for QueryLimits
impl Sync for QueryLimits
impl Unpin for QueryLimits
impl UnsafeUnpin for QueryLimits
impl UnwindSafe for QueryLimits
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<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> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().