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§
fn instantiate(&mut self, program: &[u8]) -> Result<Result<InstanceId, u8>>
Sourcefn run(
&mut self,
instance_id: InstanceId,
gas_left: i64,
action: ExecAction<'_>,
) -> Result<Result<ExecOutcome, u8>>
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.