Skip to main content

Rule

Trait Rule 

Source
pub trait Rule<'a, E: ExecutableDocument, S: SchemaDefinition>: Visitor<'a, E, S> {
    type Error;
    type Errors: Iterator<Item = Self::Error>;

    // Required method
    fn into_errors(self) -> Self::Errors;
}

Required Associated Types§

Source

type Error

Source

type Errors: Iterator<Item = Self::Error>

Required Methods§

Source

fn into_errors(self) -> Self::Errors

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, ER, T0: Rule<'a, E, S, Error = ER>, T1: Rule<'a, E, S, Error = ER>, T2: Rule<'a, E, S, Error = ER>, T3: Rule<'a, E, S, Error = ER>, T4: Rule<'a, E, S, Error = ER>, T5: Rule<'a, E, S, Error = ER>, T6: Rule<'a, E, S, Error = ER>, T7: Rule<'a, E, S, Error = ER>, T8: Rule<'a, E, S, Error = ER>, T9: Rule<'a, E, S, Error = ER>, T10: Rule<'a, E, S, Error = ER>, T11: Rule<'a, E, S, Error = ER>, T12: Rule<'a, E, S, Error = ER>, T13: Rule<'a, E, S, Error = ER>, T14: Rule<'a, E, S, Error = ER>, T15: Rule<'a, E, S, Error = ER>, T16: Rule<'a, E, S, Error = ER>, T17: Rule<'a, E, S, Error = ER>, T18: Rule<'a, E, S, Error = ER>, T19: Rule<'a, E, S, Error = ER>, T20: Rule<'a, E, S, Error = ER>, T21: Rule<'a, E, S, Error = ER>, T22: Rule<'a, E, S, Error = ER>, T23: Rule<'a, E, S, Error = ER>, T24: Rule<'a, E, S, Error = ER>, T25: Rule<'a, E, S, Error = ER>> Rule<'a, E, S> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25)

Source§

type Error = ER

Source§

type Errors = Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Empty<ER>, <T0 as Rule<'a, E, S>>::Errors>, <T1 as Rule<'a, E, S>>::Errors>, <T2 as Rule<'a, E, S>>::Errors>, <T3 as Rule<'a, E, S>>::Errors>, <T4 as Rule<'a, E, S>>::Errors>, <T5 as Rule<'a, E, S>>::Errors>, <T6 as Rule<'a, E, S>>::Errors>, <T7 as Rule<'a, E, S>>::Errors>, <T8 as Rule<'a, E, S>>::Errors>, <T9 as Rule<'a, E, S>>::Errors>, <T10 as Rule<'a, E, S>>::Errors>, <T11 as Rule<'a, E, S>>::Errors>, <T12 as Rule<'a, E, S>>::Errors>, <T13 as Rule<'a, E, S>>::Errors>, <T14 as Rule<'a, E, S>>::Errors>, <T15 as Rule<'a, E, S>>::Errors>, <T16 as Rule<'a, E, S>>::Errors>, <T17 as Rule<'a, E, S>>::Errors>, <T18 as Rule<'a, E, S>>::Errors>, <T19 as Rule<'a, E, S>>::Errors>, <T20 as Rule<'a, E, S>>::Errors>, <T21 as Rule<'a, E, S>>::Errors>, <T22 as Rule<'a, E, S>>::Errors>, <T23 as Rule<'a, E, S>>::Errors>, <T24 as Rule<'a, E, S>>::Errors>, <T25 as Rule<'a, E, S>>::Errors>

Source§

fn into_errors(self) -> Self::Errors

Source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, ER, T0: Rule<'a, E, S, Error = ER>, T1: Rule<'a, E, S, Error = ER>, T2: Rule<'a, E, S, Error = ER>, T3: Rule<'a, E, S, Error = ER>, T4: Rule<'a, E, S, Error = ER>, T5: Rule<'a, E, S, Error = ER>, T6: Rule<'a, E, S, Error = ER>, T7: Rule<'a, E, S, Error = ER>, T8: Rule<'a, E, S, Error = ER>, T9: Rule<'a, E, S, Error = ER>> Rule<'a, E, S> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

type Error = ER

Source§

type Errors = Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Empty<ER>, <T0 as Rule<'a, E, S>>::Errors>, <T1 as Rule<'a, E, S>>::Errors>, <T2 as Rule<'a, E, S>>::Errors>, <T3 as Rule<'a, E, S>>::Errors>, <T4 as Rule<'a, E, S>>::Errors>, <T5 as Rule<'a, E, S>>::Errors>, <T6 as Rule<'a, E, S>>::Errors>, <T7 as Rule<'a, E, S>>::Errors>, <T8 as Rule<'a, E, S>>::Errors>, <T9 as Rule<'a, E, S>>::Errors>

Source§

fn into_errors(self) -> Self::Errors

Source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, ER, T0: Rule<'a, E, S, Error = ER>, T1: Rule<'a, E, S, Error = ER>, T2: Rule<'a, E, S, Error = ER>, T3: Rule<'a, E, S, Error = ER>, T4: Rule<'a, E, S, Error = ER>, T5: Rule<'a, E, S, Error = ER>, T6: Rule<'a, E, S, Error = ER>, T7: Rule<'a, E, S, Error = ER>, T8: Rule<'a, E, S, Error = ER>> Rule<'a, E, S> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

Source§

type Error = ER

Source§

type Errors = Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Empty<ER>, <T0 as Rule<'a, E, S>>::Errors>, <T1 as Rule<'a, E, S>>::Errors>, <T2 as Rule<'a, E, S>>::Errors>, <T3 as Rule<'a, E, S>>::Errors>, <T4 as Rule<'a, E, S>>::Errors>, <T5 as Rule<'a, E, S>>::Errors>, <T6 as Rule<'a, E, S>>::Errors>, <T7 as Rule<'a, E, S>>::Errors>, <T8 as Rule<'a, E, S>>::Errors>

Source§

fn into_errors(self) -> Self::Errors

Source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, ER, T0: Rule<'a, E, S, Error = ER>, T1: Rule<'a, E, S, Error = ER>, T2: Rule<'a, E, S, Error = ER>, T3: Rule<'a, E, S, Error = ER>, T4: Rule<'a, E, S, Error = ER>, T5: Rule<'a, E, S, Error = ER>, T6: Rule<'a, E, S, Error = ER>, T7: Rule<'a, E, S, Error = ER>> Rule<'a, E, S> for (T0, T1, T2, T3, T4, T5, T6, T7)

Source§

type Error = ER

Source§

type Errors = Chain<Chain<Chain<Chain<Chain<Chain<Chain<Chain<Empty<ER>, <T0 as Rule<'a, E, S>>::Errors>, <T1 as Rule<'a, E, S>>::Errors>, <T2 as Rule<'a, E, S>>::Errors>, <T3 as Rule<'a, E, S>>::Errors>, <T4 as Rule<'a, E, S>>::Errors>, <T5 as Rule<'a, E, S>>::Errors>, <T6 as Rule<'a, E, S>>::Errors>, <T7 as Rule<'a, E, S>>::Errors>

Source§

fn into_errors(self) -> Self::Errors

Source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, ER, T0: Rule<'a, E, S, Error = ER>, T1: Rule<'a, E, S, Error = ER>, T2: Rule<'a, E, S, Error = ER>, T3: Rule<'a, E, S, Error = ER>, T4: Rule<'a, E, S, Error = ER>, T5: Rule<'a, E, S, Error = ER>, T6: Rule<'a, E, S, Error = ER>> Rule<'a, E, S> for (T0, T1, T2, T3, T4, T5, T6)

Source§

type Error = ER

Source§

type Errors = Chain<Chain<Chain<Chain<Chain<Chain<Chain<Empty<ER>, <T0 as Rule<'a, E, S>>::Errors>, <T1 as Rule<'a, E, S>>::Errors>, <T2 as Rule<'a, E, S>>::Errors>, <T3 as Rule<'a, E, S>>::Errors>, <T4 as Rule<'a, E, S>>::Errors>, <T5 as Rule<'a, E, S>>::Errors>, <T6 as Rule<'a, E, S>>::Errors>

Source§

fn into_errors(self) -> Self::Errors

Source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, ER, T0: Rule<'a, E, S, Error = ER>, T1: Rule<'a, E, S, Error = ER>, T2: Rule<'a, E, S, Error = ER>, T3: Rule<'a, E, S, Error = ER>, T4: Rule<'a, E, S, Error = ER>, T5: Rule<'a, E, S, Error = ER>> Rule<'a, E, S> for (T0, T1, T2, T3, T4, T5)

Source§

type Error = ER

Source§

type Errors = Chain<Chain<Chain<Chain<Chain<Chain<Empty<ER>, <T0 as Rule<'a, E, S>>::Errors>, <T1 as Rule<'a, E, S>>::Errors>, <T2 as Rule<'a, E, S>>::Errors>, <T3 as Rule<'a, E, S>>::Errors>, <T4 as Rule<'a, E, S>>::Errors>, <T5 as Rule<'a, E, S>>::Errors>

Source§

fn into_errors(self) -> Self::Errors

Source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, ER, T0: Rule<'a, E, S, Error = ER>, T1: Rule<'a, E, S, Error = ER>, T2: Rule<'a, E, S, Error = ER>, T3: Rule<'a, E, S, Error = ER>, T4: Rule<'a, E, S, Error = ER>> Rule<'a, E, S> for (T0, T1, T2, T3, T4)

Source§

type Error = ER

Source§

type Errors = Chain<Chain<Chain<Chain<Chain<Empty<ER>, <T0 as Rule<'a, E, S>>::Errors>, <T1 as Rule<'a, E, S>>::Errors>, <T2 as Rule<'a, E, S>>::Errors>, <T3 as Rule<'a, E, S>>::Errors>, <T4 as Rule<'a, E, S>>::Errors>

Source§

fn into_errors(self) -> Self::Errors

Source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, ER, T0: Rule<'a, E, S, Error = ER>, T1: Rule<'a, E, S, Error = ER>, T2: Rule<'a, E, S, Error = ER>, T3: Rule<'a, E, S, Error = ER>> Rule<'a, E, S> for (T0, T1, T2, T3)

Source§

type Error = ER

Source§

type Errors = Chain<Chain<Chain<Chain<Empty<ER>, <T0 as Rule<'a, E, S>>::Errors>, <T1 as Rule<'a, E, S>>::Errors>, <T2 as Rule<'a, E, S>>::Errors>, <T3 as Rule<'a, E, S>>::Errors>

Source§

fn into_errors(self) -> Self::Errors

Source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, ER, T0: Rule<'a, E, S, Error = ER>, T1: Rule<'a, E, S, Error = ER>, T2: Rule<'a, E, S, Error = ER>> Rule<'a, E, S> for (T0, T1, T2)

Source§

type Error = ER

Source§

type Errors = Chain<Chain<Chain<Empty<ER>, <T0 as Rule<'a, E, S>>::Errors>, <T1 as Rule<'a, E, S>>::Errors>, <T2 as Rule<'a, E, S>>::Errors>

Source§

fn into_errors(self) -> Self::Errors

Source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, ER, T0: Rule<'a, E, S, Error = ER>, T1: Rule<'a, E, S, Error = ER>> Rule<'a, E, S> for (T0, T1)

Source§

type Error = ER

Source§

type Errors = Chain<Chain<Empty<ER>, <T0 as Rule<'a, E, S>>::Errors>, <T1 as Rule<'a, E, S>>::Errors>

Source§

fn into_errors(self) -> Self::Errors

Implementors§

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for AllVariableUsagesAllowed<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for AllVariableUsesDefined<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for AllVariablesUsed<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for ArgumentNames<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for ArgumentUniqueness<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for DirectivesAreDefined<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for DirectivesAreInValidLocations<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for DirectivesAreUniquePerLocation<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for FieldSelectionMerging<'a, E, S>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for FieldSelections<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for FragmentNameUniqueness<'a, E>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for FragmentSpreadIsPossible<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for FragmentSpreadTargetDefined<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for FragmentSpreadTypeExists<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for FragmentSpreadsMustNotFormCycles<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for FragmentsMustBeUsed<'a, E>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for FragmentsOnCompositeTypes<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for LeafFieldSelections<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for LoneAnonymousOperation<'a, E>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = <Option<Error<'a, E, S>> as IntoIterator>::IntoIter

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for NamedOperationNameUniqueness<'a, E>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for OperationTypeIsDefined<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = <Vec<Error<'a, E, S>> as IntoIterator>::IntoIter

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for RequiredArguments<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for SubscriptionOperationSingleRootField<'a, E>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for ValueIsValid<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for VariableUniqueness<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument + 'a, S: SchemaDefinition + 'a> Rule<'a, E, S> for VariablesAreInputTypes<'a, E, S>

Source§

type Error = Error<'a, E, S>

Source§

type Errors = IntoIter<Error<'a, E, S>>

Source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, R: Rule<'a, E, S>, ER: From<<R as Rule<'a, E, S>>::Error>> Rule<'a, E, S> for RuleErrorAdapter<R, ER>

Source§

type Error = ER

Source§

type Errors = Map<<R as Rule<'a, E, S>>::Errors, fn(<R as Rule<'a, E, S>>::Error) -> ER>