DefaultMachineRunner

Trait DefaultMachineRunner 

Source
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§

Required Methods§

Source

fn new(machine: DefaultMachine<Self::Inner>) -> Self

Creates a new runner

Source

fn machine(&self) -> &DefaultMachine<Self::Inner>

Fetches DefaultMachine

Source

fn machine_mut(&mut self) -> &mut DefaultMachine<Self::Inner>

Fetches mutable DefaultMachine

Source

fn run(&mut self) -> Result<i8, Error>

Runs the VM till paused

Provided Methods§

Source

fn inner_mut(&mut self) -> &mut Self::Inner

Fetches the inner SupportMachine for more processing

Source

fn load_program( &mut self, program: &Bytes, args: impl ExactSizeIterator<Item = Result<Bytes, Error>>, ) -> Result<u64, Error>

Loads program

Source

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.

Implementors§