[][src]Trait chalk_ir::zip::Zip

pub trait Zip<I>: Debug where
    I: Interner
{ fn zip_with<'i, Z: Zipper<'i, I>>(
        zipper: &mut Z,
        a: &Self,
        b: &Self
    ) -> Fallible<()>
    where
        I: 'i
; }

The Zip trait walks two values, invoking the Zipper methods where appropriate, but otherwise requiring strict equality.

See Zipper trait for more details.

To implement the trait, typically you would use one of the macros like eq_zip!, struct_zip!, or enum_zip!.

Required methods

fn zip_with<'i, Z: Zipper<'i, I>>(
    zipper: &mut Z,
    a: &Self,
    b: &Self
) -> Fallible<()> where
    I: 'i, 

Loading content...

Implementations on Foreign Types

impl<'a, T: ?Sized + Zip<I>, I: Interner> Zip<I> for &'a T[src]

impl<I: Interner> Zip<I> for ()[src]

impl<T: Zip<I>, I: Interner> Zip<I> for Vec<T>[src]

impl<T: Zip<I>, I: Interner> Zip<I> for [T][src]

impl<T: Zip<I>, I: Interner> Zip<I> for Arc<T>[src]

impl<T: Zip<I>, I: Interner> Zip<I> for Box<T>[src]

impl<T: Zip<I>, U: Zip<I>, I: Interner> Zip<I> for (T, U)[src]

impl<I: Interner> Zip<I> for PhantomData<I>[src]

Loading content...

Implementors

impl<I: Interner> Zip<I> for AliasTy<I>[src]

impl<I: Interner> Zip<I> for ClausePriority[src]

impl<I: Interner> Zip<I> for DomainGoal<I>[src]

impl<I: Interner> Zip<I> for FromEnv<I>[src]

impl<I: Interner> Zip<I> for GenericArgData<I>[src]

impl<I: Interner> Zip<I> for GoalData<I>[src]

impl<I: Interner> Zip<I> for ProgramClauseData<I>[src]

impl<I: Interner> Zip<I> for QuantifierKind[src]

impl<I: Interner> Zip<I> for TypeName<I>[src]

impl<I: Interner> Zip<I> for VariableKind<I>[src]

impl<I: Interner> Zip<I> for WellFormed<I>[src]

impl<I: Interner> Zip<I> for WhereClause<I>[src]

impl<I: Interner> Zip<I> for AdtId<I>[src]

impl<I: Interner> Zip<I> for AliasEq<I>[src]

impl<I: Interner> Zip<I> for ApplicationTy<I>[src]

impl<I: Interner> Zip<I> for AssocTypeId<I>[src]

impl<I: Interner> Zip<I> for Const<I>[src]

impl<I: Interner> Zip<I> for DynTy<I>[src]

impl<I: Interner> Zip<I> for Environment<I>[src]

impl<I: Interner> Zip<I> for EqGoal<I>[src]

impl<I: Interner> Zip<I> for GenericArg<I>[src]

impl<I: Interner> Zip<I> for Goal<I>[src]

impl<I: Interner> Zip<I> for Goals<I>[src]

impl<I: Interner> Zip<I> for Lifetime<I>[src]

impl<I: Interner> Zip<I> for LifetimeOutlives<I>[src]

impl<I: Interner> Zip<I> for Normalize<I>[src]

impl<I: Interner> Zip<I> for OpaqueTy<I>[src]

impl<I: Interner> Zip<I> for OpaqueTyId<I>[src]

impl<I: Interner> Zip<I> for PlaceholderIndex[src]

impl<I: Interner> Zip<I> for ProgramClause<I>[src]

impl<I: Interner> Zip<I> for ProgramClauseImplication<I>[src]

impl<I: Interner> Zip<I> for ProgramClauses<I>[src]

impl<I: Interner> Zip<I> for ProjectionTy<I>[src]

impl<I: Interner> Zip<I> for QuantifiedWhereClauses<I>[src]

impl<I: Interner> Zip<I> for Substitution<I>[src]

impl<I: Interner> Zip<I> for TraitId<I>[src]

impl<I: Interner> Zip<I> for TraitRef<I>[src]

impl<I: Interner> Zip<I> for Ty<I>[src]

impl<I: Interner, T: HasInterner<Interner = I> + Zip<I> + Fold<I, I, Result = T>> Zip<I> for Binders<T>[src]

impl<T: HasInterner<Interner = I> + Zip<I>, I: Interner> Zip<I> for InEnvironment<T>[src]

Loading content...