pub struct QueryComplexityAnalyzer { /* private fields */ }Expand description
Analyses GraphQL query trees for complexity and depth.
Implementations§
Source§impl QueryComplexityAnalyzer
impl QueryComplexityAnalyzer
pub fn new(config: ComplexityConfig) -> Self
Sourcepub fn add_rule(&mut self, rule: ComplexityRule)
pub fn add_rule(&mut self, rule: ComplexityRule)
Register per-type complexity rules.
Sourcepub fn analyze(&self, root: &QueryNode) -> ComplexityResult
pub fn analyze(&self, root: &QueryNode) -> ComplexityResult
Analyse the given query root and return a ComplexityResult.
Sourcepub fn node_cost(&self, node: &QueryNode, _depth: usize) -> usize
pub fn node_cost(&self, node: &QueryNode, _depth: usize) -> usize
Returns the cost of node (depth is not used in cost calculation but kept for API compatibility).
Sourcepub fn is_allowed(&self, result: &ComplexityResult) -> bool
pub fn is_allowed(&self, result: &ComplexityResult) -> bool
Returns true if the result is within all configured limits.
Auto Trait Implementations§
impl Freeze for QueryComplexityAnalyzer
impl RefUnwindSafe for QueryComplexityAnalyzer
impl Send for QueryComplexityAnalyzer
impl Sync for QueryComplexityAnalyzer
impl Unpin for QueryComplexityAnalyzer
impl UnsafeUnpin for QueryComplexityAnalyzer
impl UnwindSafe for QueryComplexityAnalyzer
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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 more