Trait bluejay_validator::executable::operation::Visitor

source ·
pub trait Visitor<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues> {
    // Required method
    fn new(
        operation_definition: &'a E::OperationDefinition,
        schema_definition: &'a S,
        variable_values: &'a V,
        cache: &'a Cache<'a, E, S>
    ) -> Self;

    // Provided methods
    fn visit_field(
        &mut self,
        field: &'a E::Field,
        field_definition: &'a S::FieldDefinition,
        scoped_type: TypeDefinitionReference<'a, S::TypeDefinition>,
        included: bool
    ) { ... }
    fn leave_field(
        &mut self,
        field: &'a <E as ExecutableDocument>::Field,
        field_definition: &'a S::FieldDefinition,
        scoped_type: TypeDefinitionReference<'a, S::TypeDefinition>,
        included: bool
    ) { ... }
    fn visit_variable_definition(
        &mut self,
        variable_definition: &'a E::VariableDefinition
    ) { ... }
}

Required Methods§

source

fn new( operation_definition: &'a E::OperationDefinition, schema_definition: &'a S, variable_values: &'a V, cache: &'a Cache<'a, E, S> ) -> Self

Provided Methods§

source

fn visit_field( &mut self, field: &'a E::Field, field_definition: &'a S::FieldDefinition, scoped_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

Visits the field. If a field is part of a fragment definition, it will be visited every time the fragment is spread.

§Variables
  • field is the field being visited
  • field_definition is the definition of the field
  • scoped_type is the type that the field definition is defined within
  • included is true when the field is known to be included in the response (based on the usage of @include and @skip directives and the variable values)
source

fn leave_field( &mut self, field: &'a <E as ExecutableDocument>::Field, field_definition: &'a S::FieldDefinition, scoped_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

Called after the field and all of its children have been visited. See visit_field for more information about the variables.

source

fn visit_variable_definition( &mut self, variable_definition: &'a E::VariableDefinition )

Visits the variable definition.

§Variables
  • variable_definition is the variable definition being visited

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues, T0: Visitor<'a, E, S, V>, T1: Visitor<'a, E, S, V>> Visitor<'a, E, S, V> for (T0, T1)

source§

fn new( operation_definition: &'a E::OperationDefinition, schema_definition: &'a S, variable_values: &'a V, cache: &'a Cache<'a, E, S> ) -> Self

source§

fn visit_field( &mut self, field: &'a E::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn leave_field( &mut self, field: &'a <E as ExecutableDocument>::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn visit_variable_definition( &mut self, variable_definition: &'a E::VariableDefinition )

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues, T0: Visitor<'a, E, S, V>, T1: Visitor<'a, E, S, V>, T2: Visitor<'a, E, S, V>> Visitor<'a, E, S, V> for (T0, T1, T2)

source§

fn new( operation_definition: &'a E::OperationDefinition, schema_definition: &'a S, variable_values: &'a V, cache: &'a Cache<'a, E, S> ) -> Self

source§

fn visit_field( &mut self, field: &'a E::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn leave_field( &mut self, field: &'a <E as ExecutableDocument>::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn visit_variable_definition( &mut self, variable_definition: &'a E::VariableDefinition )

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues, T0: Visitor<'a, E, S, V>, T1: Visitor<'a, E, S, V>, T2: Visitor<'a, E, S, V>, T3: Visitor<'a, E, S, V>> Visitor<'a, E, S, V> for (T0, T1, T2, T3)

source§

fn new( operation_definition: &'a E::OperationDefinition, schema_definition: &'a S, variable_values: &'a V, cache: &'a Cache<'a, E, S> ) -> Self

source§

fn visit_field( &mut self, field: &'a E::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn leave_field( &mut self, field: &'a <E as ExecutableDocument>::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn visit_variable_definition( &mut self, variable_definition: &'a E::VariableDefinition )

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues, T0: Visitor<'a, E, S, V>, T1: Visitor<'a, E, S, V>, T2: Visitor<'a, E, S, V>, T3: Visitor<'a, E, S, V>, T4: Visitor<'a, E, S, V>> Visitor<'a, E, S, V> for (T0, T1, T2, T3, T4)

source§

fn new( operation_definition: &'a E::OperationDefinition, schema_definition: &'a S, variable_values: &'a V, cache: &'a Cache<'a, E, S> ) -> Self

source§

fn visit_field( &mut self, field: &'a E::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn leave_field( &mut self, field: &'a <E as ExecutableDocument>::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn visit_variable_definition( &mut self, variable_definition: &'a E::VariableDefinition )

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues, T0: Visitor<'a, E, S, V>, T1: Visitor<'a, E, S, V>, T2: Visitor<'a, E, S, V>, T3: Visitor<'a, E, S, V>, T4: Visitor<'a, E, S, V>, T5: Visitor<'a, E, S, V>> Visitor<'a, E, S, V> for (T0, T1, T2, T3, T4, T5)

source§

fn new( operation_definition: &'a E::OperationDefinition, schema_definition: &'a S, variable_values: &'a V, cache: &'a Cache<'a, E, S> ) -> Self

source§

fn visit_field( &mut self, field: &'a E::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn leave_field( &mut self, field: &'a <E as ExecutableDocument>::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn visit_variable_definition( &mut self, variable_definition: &'a E::VariableDefinition )

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues, T0: Visitor<'a, E, S, V>, T1: Visitor<'a, E, S, V>, T2: Visitor<'a, E, S, V>, T3: Visitor<'a, E, S, V>, T4: Visitor<'a, E, S, V>, T5: Visitor<'a, E, S, V>, T6: Visitor<'a, E, S, V>> Visitor<'a, E, S, V> for (T0, T1, T2, T3, T4, T5, T6)

source§

fn new( operation_definition: &'a E::OperationDefinition, schema_definition: &'a S, variable_values: &'a V, cache: &'a Cache<'a, E, S> ) -> Self

source§

fn visit_field( &mut self, field: &'a E::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn leave_field( &mut self, field: &'a <E as ExecutableDocument>::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn visit_variable_definition( &mut self, variable_definition: &'a E::VariableDefinition )

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues, T0: Visitor<'a, E, S, V>, T1: Visitor<'a, E, S, V>, T2: Visitor<'a, E, S, V>, T3: Visitor<'a, E, S, V>, T4: Visitor<'a, E, S, V>, T5: Visitor<'a, E, S, V>, T6: Visitor<'a, E, S, V>, T7: Visitor<'a, E, S, V>> Visitor<'a, E, S, V> for (T0, T1, T2, T3, T4, T5, T6, T7)

source§

fn new( operation_definition: &'a E::OperationDefinition, schema_definition: &'a S, variable_values: &'a V, cache: &'a Cache<'a, E, S> ) -> Self

source§

fn visit_field( &mut self, field: &'a E::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn leave_field( &mut self, field: &'a <E as ExecutableDocument>::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn visit_variable_definition( &mut self, variable_definition: &'a E::VariableDefinition )

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues, T0: Visitor<'a, E, S, V>, T1: Visitor<'a, E, S, V>, T2: Visitor<'a, E, S, V>, T3: Visitor<'a, E, S, V>, T4: Visitor<'a, E, S, V>, T5: Visitor<'a, E, S, V>, T6: Visitor<'a, E, S, V>, T7: Visitor<'a, E, S, V>, T8: Visitor<'a, E, S, V>> Visitor<'a, E, S, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

source§

fn new( operation_definition: &'a E::OperationDefinition, schema_definition: &'a S, variable_values: &'a V, cache: &'a Cache<'a, E, S> ) -> Self

source§

fn visit_field( &mut self, field: &'a E::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn leave_field( &mut self, field: &'a <E as ExecutableDocument>::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn visit_variable_definition( &mut self, variable_definition: &'a E::VariableDefinition )

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues, T0: Visitor<'a, E, S, V>, T1: Visitor<'a, E, S, V>, T2: Visitor<'a, E, S, V>, T3: Visitor<'a, E, S, V>, T4: Visitor<'a, E, S, V>, T5: Visitor<'a, E, S, V>, T6: Visitor<'a, E, S, V>, T7: Visitor<'a, E, S, V>, T8: Visitor<'a, E, S, V>, T9: Visitor<'a, E, S, V>> Visitor<'a, E, S, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

source§

fn new( operation_definition: &'a E::OperationDefinition, schema_definition: &'a S, variable_values: &'a V, cache: &'a Cache<'a, E, S> ) -> Self

source§

fn visit_field( &mut self, field: &'a E::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn leave_field( &mut self, field: &'a <E as ExecutableDocument>::Field, field_definition: &'a S::FieldDefinition, owner_type: TypeDefinitionReference<'a, S::TypeDefinition>, included: bool )

source§

fn visit_variable_definition( &mut self, variable_definition: &'a E::VariableDefinition )

Implementors§

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues, C: CostComputer<'a, E, S, V>> Visitor<'a, E, S, V> for ComplexityCost<'a, E, S, V, C>

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, VV: VariableValues> Visitor<'a, E, S, VV> for QueryDepth

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, VV: VariableValues> Visitor<'a, E, S, VV> for VariableValuesAreValid<'a, E, S, VV>