Trait chalk_ir::cast::CastTo [−][src]
pub trait CastTo<T: HasInterner>: Sized { fn cast_to(self, interner: &T::Interner) -> T; }
Expand description
The “helper” trait for cast
that actually implements the
transformations. You can also use this if you want to have
functions that take (e.g.) an impl CastTo<Goal<_>>
or something
like that.
Required methods
Implementations on Foreign Types
impl<T, U> CastTo<Vec<U, Global>> for Vec<T> where
T: CastTo<U> + HasInterner,
U: HasInterner,
[src]
impl<T, U> CastTo<Vec<U, Global>> for Vec<T> where
T: CastTo<U> + HasInterner,
U: HasInterner,
[src]Implementors
impl<I, T> CastTo<ProgramClause<I>> for Binders<T> where
I: Interner,
T: HasInterner<Interner = I> + CastTo<DomainGoal<I>>,
[src]
impl<I, T> CastTo<ProgramClause<I>> for Binders<T> where
I: Interner,
T: HasInterner<Interner = I> + CastTo<DomainGoal<I>>,
[src]fn cast_to(
self,
_interner: &<QuantifiedWhereClause<I> as HasInterner>::Interner
) -> QuantifiedWhereClause<I>
[src]fn cast_to(
self,
_interner: &<CanonicalVarKinds<I> as HasInterner>::Interner
) -> CanonicalVarKinds<I>
[src]fn cast_to(
self,
_interner: &<CanonicalVarKind<I> as HasInterner>::Interner
) -> CanonicalVarKind<I>
[src]impl<T, U> CastTo<Canonical<U>> for Canonical<T> where
T: CastTo<U> + HasInterner,
U: HasInterner<Interner = T::Interner>,
[src]
impl<T, U> CastTo<Canonical<U>> for Canonical<T> where
T: CastTo<U> + HasInterner,
U: HasInterner<Interner = T::Interner>,
[src]impl<T, U, I> CastTo<InEnvironment<U>> for InEnvironment<T> where
T: HasInterner<Interner = I> + CastTo<U>,
U: HasInterner<Interner = I>,
I: Interner,
[src]
impl<T, U, I> CastTo<InEnvironment<U>> for InEnvironment<T> where
T: HasInterner<Interner = I> + CastTo<U>,
U: HasInterner<Interner = I>,
I: Interner,
[src]