pub(crate) trait SolveDatabase<I: Interner>: Sized {
    // Required methods
    fn solve_goal(
        &mut self,
        goal: UCanonical<InEnvironment<Goal<I>>>,
        minimums: &mut Minimums,
        should_continue: impl Fn() -> bool + Clone
    ) -> Fallible<Solution<I>>;
    fn max_size(&self) -> usize;
    fn interner(&self) -> I;
    fn db(&self) -> &dyn RustIrDatabase<I>;
}

Required Methods§

source

fn solve_goal( &mut self, goal: UCanonical<InEnvironment<Goal<I>>>, minimums: &mut Minimums, should_continue: impl Fn() -> bool + Clone ) -> Fallible<Solution<I>>

source

fn max_size(&self) -> usize

source

fn interner(&self) -> I

source

fn db(&self) -> &dyn RustIrDatabase<I>

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'me, I: Interner> SolveDatabase<I> for Solver<'me, I>