pub struct VirtManager { /* private fields */ }Expand description
Manages virtualization instances and their lifecycle.
Instance and module IDs are assigned deterministically from incrementing counters, ensuring no non-determinism across different executions.
NOTE: The per-instance cache deduplicates modules within the lifetime of one
VirtManager (i.e. one externalities extension, i.e. one block). Cross-block
reuse is deferred to PolkaVM’s built-in on-disk persistent cache.
Trait Implementations§
Source§impl Default for VirtManager
impl Default for VirtManager
Source§impl VirtManagerBackend for VirtManager
impl VirtManagerBackend for VirtManager
Source§fn compile_from_bytes(
&mut self,
program: &[u8],
identifier: Option<&[u8]>,
) -> Result<ModuleId, ModuleError>
fn compile_from_bytes( &mut self, program: &[u8], identifier: Option<&[u8]>, ) -> Result<ModuleId, ModuleError>
Compile
program into a new module. Read moreSource§fn lookup(&mut self, identifier: &[u8]) -> Result<ModuleId, ModuleError>
fn lookup(&mut self, identifier: &[u8]) -> Result<ModuleId, ModuleError>
Look up a module previously cached under
identifier. Read morefn instantiate( &mut self, module_id: ModuleId, ) -> Result<InstanceId, InstantiateError>
fn prepare( &mut self, instance_id: InstanceId, function: &[u8], ) -> Result<(), ExecError>
fn run( &mut self, instance_id: InstanceId, gas_left: i64, a0: u64, ) -> Result<(ExecStatus, ExecBuffer), ExecError>
fn destroy(&mut self, instance_id: InstanceId) -> Result<(), DestroyError>
fn read_memory( &mut self, instance_id: InstanceId, offset: u32, dest: &mut [u8], ) -> Result<(), MemoryError>
fn write_memory( &mut self, instance_id: InstanceId, offset: u32, src: &[u8], ) -> Result<(), MemoryError>
Auto Trait Implementations§
impl !RefUnwindSafe for VirtManager
impl !UnwindSafe for VirtManager
impl Freeze for VirtManager
impl Send for VirtManager
impl Sync for VirtManager
impl Unpin for VirtManager
impl UnsafeUnpin for VirtManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more