[−][src]Trait chalk_ir::zip::Zip
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
Loading content...Implementations on Foreign Types
impl<'a, T: ?Sized + Zip<I>, I: Interner> Zip<I> for &'a T
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for ()
[src]
impl<T: Zip<I>, I: Interner> Zip<I> for Vec<T>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<T: Zip<I>, I: Interner> Zip<I> for [T]
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<T: Zip<I>, I: Interner> Zip<I> for Arc<T>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<T: Zip<I>, I: Interner> Zip<I> for Box<T>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<T: Zip<I>, U: Zip<I>, I: Interner> Zip<I> for (T, U)
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for PhantomData<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
Implementors
impl<I: Interner> Zip<I> for AliasTy<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for ClausePriority
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for DomainGoal<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for FromEnv<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for GenericArgData<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for GoalData<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for ProgramClauseData<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for QuantifierKind
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for TypeName<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for VariableKind<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for WellFormed<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for WhereClause<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for AdtId<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for AliasEq<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for ApplicationTy<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for AssocTypeId<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for Const<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for DynTy<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for Environment<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for EqGoal<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for GenericArg<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for Goal<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for Goals<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for Lifetime<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for LifetimeOutlives<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for Normalize<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for OpaqueTy<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for OpaqueTyId<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for PlaceholderIndex
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for ProgramClause<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for ProgramClauseImplication<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for ProgramClauses<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for ProjectionTy<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for QuantifiedWhereClauses<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for Substitution<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for TraitId<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
_zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for TraitRef<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner> Zip<I> for Ty<I>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
impl<I: Interner, T: HasInterner<Interner = I> + Zip<I> + Fold<I, I, Result = T>> Zip<I> for Binders<T>
[src]
fn zip_with<'i, Z: Zipper<'i, I>>(
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,
[src]
zipper: &mut Z,
a: &Self,
b: &Self
) -> Fallible<()> where
I: 'i,