pub trait DefaultMachineRunner {
type Inner: SupportMachine;
// Required methods
fn new(machine: DefaultMachine<Self::Inner>) -> Self;
fn machine(&self) -> &DefaultMachine<Self::Inner>;
fn machine_mut(&mut self) -> &mut DefaultMachine<Self::Inner>;
fn run(&mut self) -> Result<i8, Error>;
// Provided methods
fn inner_mut(&mut self) -> &mut Self::Inner { ... }
fn load_program(
&mut self,
program: &Bytes,
args: impl ExactSizeIterator<Item = Result<Bytes, Error>>,
) -> Result<u64, Error> { ... }
fn load_program_with_metadata(
&mut self,
program: &Bytes,
metadata: &ProgramMetadata,
args: impl ExactSizeIterator<Item = Result<Bytes, Error>>,
) -> Result<u64, Error> { ... }
}Expand description
A runner trait providing APIs to drive the included DefaultMachine
Required Associated Types§
type Inner: SupportMachine
Required Methods§
Sourcefn new(machine: DefaultMachine<Self::Inner>) -> Self
fn new(machine: DefaultMachine<Self::Inner>) -> Self
Creates a new runner
Sourcefn machine(&self) -> &DefaultMachine<Self::Inner>
fn machine(&self) -> &DefaultMachine<Self::Inner>
Fetches DefaultMachine
Sourcefn machine_mut(&mut self) -> &mut DefaultMachine<Self::Inner>
fn machine_mut(&mut self) -> &mut DefaultMachine<Self::Inner>
Fetches mutable DefaultMachine
Provided Methods§
Sourcefn inner_mut(&mut self) -> &mut Self::Inner
fn inner_mut(&mut self) -> &mut Self::Inner
Fetches the inner SupportMachine for more processing
Sourcefn load_program(
&mut self,
program: &Bytes,
args: impl ExactSizeIterator<Item = Result<Bytes, Error>>,
) -> Result<u64, Error>
fn load_program( &mut self, program: &Bytes, args: impl ExactSizeIterator<Item = Result<Bytes, Error>>, ) -> Result<u64, Error>
Loads program
Sourcefn load_program_with_metadata(
&mut self,
program: &Bytes,
metadata: &ProgramMetadata,
args: impl ExactSizeIterator<Item = Result<Bytes, Error>>,
) -> Result<u64, Error>
fn load_program_with_metadata( &mut self, program: &Bytes, metadata: &ProgramMetadata, args: impl ExactSizeIterator<Item = Result<Bytes, Error>>, ) -> Result<u64, Error>
Loads program with lazy loading metadata
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.