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", so this trait is not object safe.

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>> 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

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>, 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>, 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>, 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>, 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>, 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>, 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>, 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>, 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

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>