pub trait Execute<S: Symbolic>: Alphabet<S> + Iterator<Item = Instruction<S>> + Stateful<State> {
    type Driver: Scope<S>;

    // Required methods
    fn program(&self) -> &Program<S>;
    fn scope(&self) -> &Self::Driver;
    fn scope_mut(&mut self) -> &mut Self::Driver;

    // Provided methods
    fn execute(&mut self) -> Result<&Self::Driver, Error> { ... }
    fn execute_once(&mut self) -> Result<&Self::Driver, Error> { ... }
    fn execute_until(
        &mut self,
        until: impl Predicate<Self::Driver>
    ) -> Result<&Self::Driver, Error> { ... }
}
Expand description

Execute describes a self-contained executor that can be executed synchronously.

Required Associated Types§

Required Methods§

source

fn program(&self) -> &Program<S>

source

fn scope(&self) -> &Self::Driver

source

fn scope_mut(&mut self) -> &mut Self::Driver

Provided Methods§

source

fn execute(&mut self) -> Result<&Self::Driver, Error>

source

fn execute_once(&mut self) -> Result<&Self::Driver, Error>

source

fn execute_until( &mut self, until: impl Predicate<Self::Driver> ) -> Result<&Self::Driver, Error>

Implementors§