Struct chalk_engine::Answer[][src]

pub struct Answer<I: Interner> {
    pub subst: Canonical<AnswerSubst<I>>,
    pub ambiguous: bool,
}

An "answer" in the on-demand solver corresponds to a fully solved goal for a particular table (modulo delayed literals). It contains a substitution

Fields

subst: Canonical<AnswerSubst<I>>

Contains values for the unbound inference variables for which the table is true, along with any delayed subgoals (Which must still be proven) and region constrained (which must still be proven, but not by chalk).

ambiguous: bool

If this flag is set, then the answer could be neither proven nor disproven. This could be the size of the answer exceeded max_size or because of a negative loop (e.g., P :- not { P }).

Trait Implementations

impl<I: Clone + Interner> Clone for Answer<I>[src]

impl<I: Debug + Interner> Debug for Answer<I>[src]

Auto Trait Implementations

impl<I> RefUnwindSafe for Answer<I> where
    <I as Interner>::InternedCanonicalVarKinds: RefUnwindSafe,
    <I as Interner>::InternedConstraints: RefUnwindSafe,
    <I as Interner>::InternedGoal: RefUnwindSafe,
    <I as Interner>::InternedProgramClauses: RefUnwindSafe,
    <I as Interner>::InternedSubstitution: RefUnwindSafe
[src]

impl<I> Send for Answer<I> where
    <I as Interner>::InternedCanonicalVarKinds: Send,
    <I as Interner>::InternedConstraints: Send,
    <I as Interner>::InternedGoal: Send,
    <I as Interner>::InternedProgramClauses: Send,
    <I as Interner>::InternedSubstitution: Send
[src]

impl<I> Sync for Answer<I> where
    <I as Interner>::InternedCanonicalVarKinds: Sync,
    <I as Interner>::InternedConstraints: Sync,
    <I as Interner>::InternedGoal: Sync,
    <I as Interner>::InternedProgramClauses: Sync,
    <I as Interner>::InternedSubstitution: Sync
[src]

impl<I> Unpin for Answer<I> where
    <I as Interner>::InternedCanonicalVarKinds: Unpin,
    <I as Interner>::InternedConstraints: Unpin,
    <I as Interner>::InternedGoal: Unpin,
    <I as Interner>::InternedProgramClauses: Unpin,
    <I as Interner>::InternedSubstitution: Unpin
[src]

impl<I> UnwindSafe for Answer<I> where
    <I as Interner>::InternedCanonicalVarKinds: UnwindSafe,
    <I as Interner>::InternedConstraints: UnwindSafe,
    <I as Interner>::InternedGoal: UnwindSafe,
    <I as Interner>::InternedProgramClauses: UnwindSafe,
    <I as Interner>::InternedSubstitution: UnwindSafe
[src]

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> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[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.