Trait WasmInstance

Source
pub trait WasmInstance: Send + Sync {
    // Required methods
    fn state(&self) -> WasmInstanceState;
    fn memory_usage(&self) -> usize;
    fn fuel_usage(&self) -> Option<u64>;
    fn reset_fuel(&self) -> Result<()>;
    fn add_fuel(&self, fuel: u64) -> Result<()>;
    unsafe fn memory_ptr(&self) -> Result<*mut u8>;
    fn memory_size(&self) -> usize;
    fn function_caller(&self) -> Box<dyn WasmFunctionCaller>;
    fn call_simple_function(
        &self,
        function_name: &str,
        params: &[i32],
    ) -> Result<i32>;
}
Expand description

WebAssembly instance abstraction (dyn-compatible part)

Required Methods§

Source

fn state(&self) -> WasmInstanceState

Get the instance state

Source

fn memory_usage(&self) -> usize

Get memory usage in bytes

Source

fn fuel_usage(&self) -> Option<u64>

Get fuel usage (if enabled)

Source

fn reset_fuel(&self) -> Result<()>

Reset fuel counter (if enabled)

Source

fn add_fuel(&self, fuel: u64) -> Result<()>

Add fuel (if enabled)

Source

unsafe fn memory_ptr(&self) -> Result<*mut u8>

Get a raw pointer to the instance memory

§Safety

This is unsafe because it allows direct access to the instance’s memory. The caller must ensure that they do not corrupt memory or violate WebAssembly’s memory safety guarantees.

Source

fn memory_size(&self) -> usize

Get memory size in bytes

Source

fn function_caller(&self) -> Box<dyn WasmFunctionCaller>

Get the function caller for this instance

Source

fn call_simple_function( &self, function_name: &str, params: &[i32], ) -> Result<i32>

Simple function call for basic cases (add two i32s) This is a convenience method for testing and simple operations

Implementors§