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".