Skip to main content

Virtualization

Trait Virtualization 

Source
pub trait Virtualization {
    // Required methods
    fn instantiate(&mut self, program: &[u8]) -> Result<Result<InstanceId, u8>>;
    fn run(
        &mut self,
        instance_id: InstanceId,
        gas_left: i64,
        action: ExecAction<'_>,
    ) -> Result<Result<ExecOutcome, u8>>;
    fn destroy(&mut self, instance_id: InstanceId) -> Result<Result<(), u8>>;
    fn read_memory(
        &mut self,
        instance_id: InstanceId,
        offset: u32,
        dest: &mut [u8],
    ) -> Result<Result<(), u8>>;
    fn write_memory(
        &mut self,
        instance_id: InstanceId,
        offset: u32,
        src: &[u8],
    ) -> Result<Result<(), u8>>;
}
Expand description

See sp_virtualization::Virtualization.

Required Methods§

Source

fn instantiate(&mut self, program: &[u8]) -> Result<Result<InstanceId, u8>>

Source

fn run( &mut self, instance_id: InstanceId, gas_left: i64, action: ExecAction<'_>, ) -> Result<Result<ExecOutcome, u8>>

Execute or resume a virtualization instance.

When action is ExecAction::Execute, starts executing the named function. When action is ExecAction::Resume, resumes after a syscall with the given return value.

Returns the execution outcome: either finished or a syscall was encountered.

Source

fn destroy(&mut self, instance_id: InstanceId) -> Result<Result<(), u8>>

Source

fn read_memory( &mut self, instance_id: InstanceId, offset: u32, dest: &mut [u8], ) -> Result<Result<(), u8>>

Source

fn write_memory( &mut self, instance_id: InstanceId, offset: u32, src: &[u8], ) -> Result<Result<(), u8>>

Implementors§