[][src]Struct chalk_engine::forest::Forest

pub struct Forest<I: Interner, C: Context<I>> { /* fields omitted */ }

Implementations

impl<I: Interner, C: Context<I>> Forest<I, C>[src]

pub fn new() -> Self[src]

pub fn iter_answers<'f>(
    &'f mut self,
    context: &'f impl ContextOps<I, C>,
    goal: &UCanonical<InEnvironment<Goal<I>>>
) -> impl AnswerStream<I> + 'f
[src]

Returns a "solver" for a given goal in the form of an iterator. Each time you invoke next, it will do the work to extract one more answer. These answers are cached in between invocations. Invoking next fewer times is preferable =)

Auto Trait Implementations

impl<I, C> RefUnwindSafe for Forest<I, C> where
    C: RefUnwindSafe,
    <I as Interner>::InternedCanonicalVarKinds: RefUnwindSafe,
    <I as Interner>::InternedConstraints: RefUnwindSafe,
    <I as Interner>::InternedGoal: RefUnwindSafe,
    <I as Interner>::InternedLifetime: RefUnwindSafe,
    <I as Interner>::InternedProgramClauses: RefUnwindSafe,
    <I as Interner>::InternedSubstitution: RefUnwindSafe,
    <I as Interner>::InternedType: RefUnwindSafe

impl<I, C> Send for Forest<I, C> where
    C: Send,
    <I as Interner>::InternedCanonicalVarKinds: Send,
    <I as Interner>::InternedConstraints: Send,
    <I as Interner>::InternedGoal: Send,
    <I as Interner>::InternedLifetime: Send,
    <I as Interner>::InternedProgramClauses: Send,
    <I as Interner>::InternedSubstitution: Send,
    <I as Interner>::InternedType: Send

impl<I, C> Sync for Forest<I, C> where
    C: Sync,
    <I as Interner>::InternedCanonicalVarKinds: Sync,
    <I as Interner>::InternedConstraints: Sync,
    <I as Interner>::InternedGoal: Sync,
    <I as Interner>::InternedLifetime: Sync,
    <I as Interner>::InternedProgramClauses: Sync,
    <I as Interner>::InternedSubstitution: Sync,
    <I as Interner>::InternedType: Sync

impl<I, C> Unpin for Forest<I, C> where
    C: Unpin,
    <I as Interner>::InternedCanonicalVarKinds: Unpin,
    <I as Interner>::InternedConstraints: Unpin,
    <I as Interner>::InternedGoal: Unpin,
    <I as Interner>::InternedLifetime: Unpin,
    <I as Interner>::InternedProgramClauses: Unpin,
    <I as Interner>::InternedSubstitution: Unpin,
    <I as Interner>::InternedType: Unpin

impl<I, C> UnwindSafe for Forest<I, C> where
    C: UnwindSafe,
    <I as Interner>::InternedCanonicalVarKinds: UnwindSafe,
    <I as Interner>::InternedConstraints: UnwindSafe,
    <I as Interner>::InternedGoal: UnwindSafe,
    <I as Interner>::InternedLifetime: UnwindSafe,
    <I as Interner>::InternedProgramClauses: UnwindSafe,
    <I as Interner>::InternedSubstitution: UnwindSafe,
    <I as Interner>::InternedType: 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> From<T> for T[src]

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

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.