#[cfg(feature = "alloc")]
#[doc(inline)]
pub use self::turing_engine::TuringEngine;
#[cfg(feature = "alloc")]
pub mod turing_engine;
pub(crate) mod prelude {
#[doc(inline)]
#[cfg(feature = "alloc")]
pub use super::turing_engine::*;
#[doc(inline)]
pub use super::{Engine, RawEngine};
}
use crate::traits::RawActor;
use rstm_programs::Program;
use rstm_state::RawState;
pub trait RawEngine<Q, A>
where
Q: RawState,
{
type Driver: RawActor;
private!();
}
pub trait Engine<Q, S>: RawEngine<Q, S>
where
Q: RawState,
{
fn load(&mut self, program: Program<Q, S>);
fn run(&mut self) -> crate::Result<()>;
}