[−][src]Struct chalk_engine::forest::Forest
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]
&'f mut self,
context: &'f impl ContextOps<I, C>,
goal: &UCanonical<InEnvironment<Goal<I>>>
) -> impl AnswerStream<I> + 'f
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>::InternedGoal: RefUnwindSafe,
<I as Interner>::InternedLifetime: RefUnwindSafe,
<I as Interner>::InternedProgramClauses: RefUnwindSafe,
<I as Interner>::InternedSubstitution: RefUnwindSafe,
C: RefUnwindSafe,
<I as Interner>::InternedCanonicalVarKinds: RefUnwindSafe,
<I as Interner>::InternedGoal: RefUnwindSafe,
<I as Interner>::InternedLifetime: RefUnwindSafe,
<I as Interner>::InternedProgramClauses: RefUnwindSafe,
<I as Interner>::InternedSubstitution: RefUnwindSafe,
impl<I, C> Send for Forest<I, C> where
C: Send,
<I as Interner>::InternedCanonicalVarKinds: Send,
<I as Interner>::InternedGoal: Send,
<I as Interner>::InternedLifetime: Send,
<I as Interner>::InternedProgramClauses: Send,
<I as Interner>::InternedSubstitution: Send,
C: Send,
<I as Interner>::InternedCanonicalVarKinds: Send,
<I as Interner>::InternedGoal: Send,
<I as Interner>::InternedLifetime: Send,
<I as Interner>::InternedProgramClauses: Send,
<I as Interner>::InternedSubstitution: Send,
impl<I, C> Sync for Forest<I, C> where
C: Sync,
<I as Interner>::InternedCanonicalVarKinds: Sync,
<I as Interner>::InternedGoal: Sync,
<I as Interner>::InternedLifetime: Sync,
<I as Interner>::InternedProgramClauses: Sync,
<I as Interner>::InternedSubstitution: Sync,
C: Sync,
<I as Interner>::InternedCanonicalVarKinds: Sync,
<I as Interner>::InternedGoal: Sync,
<I as Interner>::InternedLifetime: Sync,
<I as Interner>::InternedProgramClauses: Sync,
<I as Interner>::InternedSubstitution: Sync,
impl<I, C> Unpin for Forest<I, C> where
C: Unpin,
<I as Interner>::InternedCanonicalVarKinds: Unpin,
<I as Interner>::InternedGoal: Unpin,
<I as Interner>::InternedLifetime: Unpin,
<I as Interner>::InternedProgramClauses: Unpin,
<I as Interner>::InternedSubstitution: Unpin,
C: Unpin,
<I as Interner>::InternedCanonicalVarKinds: Unpin,
<I as Interner>::InternedGoal: Unpin,
<I as Interner>::InternedLifetime: Unpin,
<I as Interner>::InternedProgramClauses: Unpin,
<I as Interner>::InternedSubstitution: Unpin,
impl<I, C> UnwindSafe for Forest<I, C> where
C: UnwindSafe,
<I as Interner>::InternedCanonicalVarKinds: UnwindSafe,
<I as Interner>::InternedGoal: UnwindSafe,
<I as Interner>::InternedLifetime: UnwindSafe,
<I as Interner>::InternedProgramClauses: UnwindSafe,
<I as Interner>::InternedSubstitution: UnwindSafe,
C: UnwindSafe,
<I as Interner>::InternedCanonicalVarKinds: UnwindSafe,
<I as Interner>::InternedGoal: UnwindSafe,
<I as Interner>::InternedLifetime: UnwindSafe,
<I as Interner>::InternedProgramClauses: UnwindSafe,
<I as Interner>::InternedSubstitution: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> Cast for T[src]
fn cast<U>(self, interner: &<U as HasInterner>::Interner) -> U where
Self: CastTo<U>,
U: HasInterner, [src]
Self: CastTo<U>,
U: HasInterner,
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,