1 2 3 4 5 6 7 8 9 10 11 12 13 14
use crate::solver::Solver;
use crate::stream::{Lazy, Stream, StreamEngine};
use crate::user::User;
pub type DefaultEngine<U> = StreamEngine<U>;
pub trait Engine<U>: Sized + 'static
where
U: User,
{
fn new() -> Self;
fn step<'a>(&'a self, solver: &'a Solver<U, Self>, lazy: Lazy<U, Self>) -> Stream<U, Self>;
}