Trait Relate

pub trait Relate<I>:
    TypeFoldable<I>
    + PartialEq
    + Copy
where I: Interner,
{ // Required method fn relate<R>( relation: &mut R, a: Self, b: Self, ) -> Result<Self, TypeError<I>> where R: TypeRelation<I>; }

Required Methods§

fn relate<R>(relation: &mut R, a: Self, b: Self) -> Result<Self, TypeError<I>>
where R: TypeRelation<I>,

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.

Implementors§

Source§

impl<'db> Relate<DbInterner<'db>> for FnAbi

Source§

impl<'db> Relate<DbInterner<'db>> for Safety

Source§

impl<'db> Relate<DbInterner<'db>> for GenericArg<'db>

Source§

impl<'db> Relate<DbInterner<'db>> for Term<'db>

Source§

impl<'db> Relate<DbInterner<'db>> for Pattern<'db>

Source§

impl<'db> Relate<DbInterner<'db>> for BoundExistentialPredicates<'db>

Source§

impl<'db> Relate<DbInterner<'db>> for Const<'db>

Source§

impl<'db> Relate<DbInterner<'db>> for ExprConst

Source§

impl<'db> Relate<DbInterner<'db>> for GenericArgs<'db>

Source§

impl<'db> Relate<DbInterner<'db>> for Region<'db>

Source§

impl<'db> Relate<DbInterner<'db>> for Ty<'db>

§

impl<I> Relate<I> for AliasTerm<I>
where I: Interner,

§

impl<I> Relate<I> for AliasTy<I>
where I: Interner,

§

impl<I> Relate<I> for ExistentialProjection<I>
where I: Interner,

§

impl<I> Relate<I> for ExistentialTraitRef<I>
where I: Interner,

§

impl<I> Relate<I> for FnSig<I>
where I: Interner,

§

impl<I> Relate<I> for TraitPredicate<I>
where I: Interner,

§

impl<I> Relate<I> for TraitRef<I>
where I: Interner,

§

impl<I, T> Relate<I> for Binder<I, T>
where I: Interner, T: Relate<I>,