Struct chalk_engine::ExClause [] [src]

pub struct ExClause<C: Context, I: InferenceContext<C>> {
    pub subst: I::Substitution,
    pub delayed_literals: Vec<DelayedLiteral<C>>,
    pub constraints: Vec<I::RegionConstraint>,
    pub subgoals: Vec<Literal<C, I>>,
}

The paper describes these as A :- D | G.

Fields

The substitution which, applied to the goal of our table, would yield A.

Delayed literals: things that we depend on negatively, but which have not yet been fully evaluated.

Region constraints we have accumulated.

Subgoals: literals that must be proven

Trait Implementations

impl<C: Clone + Context, I: Clone + InferenceContext<C>> Clone for ExClause<C, I> where
    I::Substitution: Clone,
    I::RegionConstraint: Clone
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl<C: Debug + Context, I: Debug + InferenceContext<C>> Debug for ExClause<C, I> where
    I::Substitution: Debug,
    I::RegionConstraint: Debug
[src]

[src]

Formats the value using the given formatter. Read more

impl<C: PartialEq + Context, I: PartialEq + InferenceContext<C>> PartialEq for ExClause<C, I> where
    I::Substitution: PartialEq,
    I::RegionConstraint: PartialEq
[src]

[src]

This method tests for self and other values to be equal, and is used by ==. Read more

[src]

This method tests for !=.

impl<C: Eq + Context, I: Eq + InferenceContext<C>> Eq for ExClause<C, I> where
    I::Substitution: Eq,
    I::RegionConstraint: Eq
[src]

impl<C: Hash + Context, I: Hash + InferenceContext<C>> Hash for ExClause<C, I> where
    I::Substitution: Hash,
    I::RegionConstraint: Hash
[src]

[src]

Feeds this value into the given [Hasher]. Read more

1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

Auto Trait Implementations

impl<C, I> Send for ExClause<C, I> where
    <C as Context>::CanonicalConstrainedSubst: Send,
    <I as InferenceContext<C>>::GoalInEnvironment: Send,
    <I as InferenceContext<C>>::RegionConstraint: Send,
    <I as InferenceContext<C>>::Substitution: Send

impl<C, I> Sync for ExClause<C, I> where
    <C as Context>::CanonicalConstrainedSubst: Sync,
    <I as InferenceContext<C>>::GoalInEnvironment: Sync,
    <I as InferenceContext<C>>::RegionConstraint: Sync,
    <I as InferenceContext<C>>::Substitution: Sync