[][src]Struct chalk_ir::ProgramClause

pub struct ProgramClause<I: Interner> { /* fields omitted */ }

Implementations

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

pub fn new(interner: &I, clause: ProgramClauseData<I>) -> Self[src]

pub fn into_from_env_clause(self, interner: &I) -> ProgramClause<I>[src]

pub fn interned(&self) -> &I::InternedProgramClause[src]

pub fn data(&self, interner: &I) -> &ProgramClauseData<I>[src]

Trait Implementations

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

impl<T, I> CastTo<ProgramClause<I>> for T where
    T: CastTo<DomainGoal<I>>,
    I: Interner
[src]

impl<I, T> CastTo<ProgramClause<I>> for Binders<T> where
    I: Interner,
    T: HasInterner<Interner = I> + CastTo<DomainGoal<I>>, 
[src]

impl<I: Interner> CastTo<ProgramClause<I>> for ProgramClauseImplication<I>[src]

impl<I: Interner> CastTo<ProgramClause<I>> for Binders<ProgramClauseImplication<I>>[src]

impl<I: Clone + Interner> Clone for ProgramClause<I> where
    I::InternedProgramClause: Clone
[src]

impl<I: Copy + Interner> Copy for ProgramClause<I> where
    I::InternedProgramClause: Copy
[src]

impl<I: Interner> CouldMatch<DomainGoal<I>> for ProgramClause<I>[src]

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

impl<I: Eq + Interner> Eq for ProgramClause<I> where
    I::InternedProgramClause: Eq
[src]

impl<I: Interner, TI: TargetInterner<I>> Fold<I, TI> for ProgramClause<I>[src]

Folding a program clause invokes the fold_program_clause callback on the folder (which will, by default, invoke the super_fold_with method on the program clause).

type Result = ProgramClause<TI>

The type of value that will be produced once folding is done. Typically this is Self, unless Self contains borrowed values, in which case owned values are produced (for example, one can fold over a &T value where T: Fold, in which case you get back a T, not a &T). Read more

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

type Interner = I

impl<I: Hash + Interner> Hash for ProgramClause<I> where
    I::InternedProgramClause: Hash
[src]

impl<I: Ord + Interner> Ord for ProgramClause<I> where
    I::InternedProgramClause: Ord
[src]

impl<I: PartialEq + Interner> PartialEq<ProgramClause<I>> for ProgramClause<I> where
    I::InternedProgramClause: PartialEq
[src]

impl<I: PartialOrd + Interner> PartialOrd<ProgramClause<I>> for ProgramClause<I> where
    I::InternedProgramClause: PartialOrd
[src]

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

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

impl<I: Interner, TI: TargetInterner<I>> SuperFold<I, TI> for ProgramClause<I>[src]

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

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

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

Auto Trait Implementations

impl<I> RefUnwindSafe for ProgramClause<I> where
    <I as Interner>::InternedProgramClause: RefUnwindSafe

impl<I> Send for ProgramClause<I> where
    <I as Interner>::InternedProgramClause: Send

impl<I> Sync for ProgramClause<I> where
    <I as Interner>::InternedProgramClause: Sync

impl<I> Unpin for ProgramClause<I> where
    <I as Interner>::InternedProgramClause: Unpin

impl<I> UnwindSafe for ProgramClause<I> where
    <I as Interner>::InternedProgramClause: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Cast for T[src]

impl<T, I> CastTo<ProgramClause<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CastTo<ProgramClause<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CastTo<ProgramClause<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CastTo<ProgramClause<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CastTo<ProgramClause<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CastTo<ProgramClause<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CastTo<ProgramClause<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CastTo<ProgramClause<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CastTo<ProgramClause<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CastTo<ProgramClause<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CastTo<ProgramClause<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CouldMatch<T> for T where
    I: Interner,
    T: Zip<I> + HasInterner<Interner = I> + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, I> Shift<I> for T where
    I: Interner,
    T: Fold<I, I>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T, I> VisitExt<I> for T where
    I: Interner,
    T: Visit<I>, 
[src]