Struct graphql_tools::validation::rules::overlapping_fields_can_be_merged::OverlappingFieldsCanBeMerged
source · [−]pub struct OverlappingFieldsCanBeMerged<'a> { /* private fields */ }Expand description
Overlapping fields can be merged
A selection set is only valid if all fields (including spreading any fragments) either correspond to distinct response names or can be merged without ambiguity.
See https://spec.graphql.org/draft/#sec-Field-Selection-Merging
Implementations
sourceimpl<'a> OverlappingFieldsCanBeMerged<'a>
impl<'a> OverlappingFieldsCanBeMerged<'a>
Trait Implementations
sourceimpl<'a> OperationVisitor<'a, ValidationErrorContext> for OverlappingFieldsCanBeMerged<'a>
impl<'a> OperationVisitor<'a, ValidationErrorContext> for OverlappingFieldsCanBeMerged<'a>
fn enter_document(
&mut self,
_visitor_context: &mut OperationVisitorContext<'_>,
_: &mut ValidationErrorContext,
document: &'a Document
)
fn enter_selection_set(
&mut self,
visitor_context: &mut OperationVisitorContext<'a>,
user_context: &mut ValidationErrorContext,
selection_set: &'a SelectionSet
)
fn leave_document(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &Document
)
fn enter_operation_definition(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &'a OperationDefinition
)
fn leave_operation_definition(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &OperationDefinition
)
fn enter_fragment_definition(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &'a FragmentDefinition
)
fn leave_fragment_definition(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &FragmentDefinition
)
fn enter_variable_definition(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &'a VariableDefinition
)
fn leave_variable_definition(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &VariableDefinition
)
fn enter_directive(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &Directive
)
fn leave_directive(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &Directive
)
fn enter_argument(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &'a (String, Value)
)
fn leave_argument(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &(String, Value)
)
fn leave_selection_set(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &SelectionSet
)
fn enter_field(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &Field
)
fn leave_field(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &Field
)
fn enter_fragment_spread(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &'a FragmentSpread
)
fn leave_fragment_spread(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &FragmentSpread
)
fn enter_inline_fragment(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &InlineFragment
)
fn leave_inline_fragment(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &InlineFragment
)
fn enter_null_value(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: ()
)
fn leave_null_value(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: ()
)
fn enter_scalar_value(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &Value
)
fn leave_scalar_value(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &Value
)
fn enter_enum_value(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &String
)
fn leave_enum_value(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &String
)
fn enter_variable_value(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &'a str
)
fn leave_variable_value(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &String
)
fn enter_list_value(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &Vec<Value>
)
fn leave_list_value(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &Vec<Value>
)
fn enter_object_value(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &BTreeMap<String, Value>
)
fn leave_object_value(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &BTreeMap<String, Value>
)
fn enter_object_field(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &(String, Value)
)
fn leave_object_field(
&mut self,
_: &mut OperationVisitorContext<'a>,
_: &mut UserContext,
_: &(String, Value)
)
sourceimpl<'o> ValidationRule for OverlappingFieldsCanBeMerged<'o>
impl<'o> ValidationRule for OverlappingFieldsCanBeMerged<'o>
fn validate<'a>(
&self,
ctx: &'a mut OperationVisitorContext<'_>,
error_collector: &mut ValidationErrorContext
)
Auto Trait Implementations
impl<'a> RefUnwindSafe for OverlappingFieldsCanBeMerged<'a>
impl<'a> Send for OverlappingFieldsCanBeMerged<'a>
impl<'a> Sync for OverlappingFieldsCanBeMerged<'a>
impl<'a> Unpin for OverlappingFieldsCanBeMerged<'a>
impl<'a> UnwindSafe for OverlappingFieldsCanBeMerged<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more