Skip to main content

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

Implementors§