Skip to main content

InstanceWithMemory

Trait InstanceWithMemory 

Source
pub trait InstanceWithMemory: CabiReallocAlias + CabiFreeAlias {
    // Required method
    fn memory_from_export(
        &self,
        export: <Self::Runtime as Runtime>::Export,
    ) -> Result<Option<<Self::Runtime as Runtime>::Memory>, RuntimeError>;

    // Provided methods
    fn memory(&mut self) -> Result<Memory<'_, Self>, RuntimeError> { ... }
    fn load_memory(
        &mut self,
    ) -> Result<<Self::Runtime as Runtime>::Memory, RuntimeError> { ... }
}
Expand description

Trait alias for a Wasm module instance with the WIT Canonical ABI functions.

Required Methods§

Source

fn memory_from_export( &self, export: <Self::Runtime as Runtime>::Export, ) -> Result<Option<<Self::Runtime as Runtime>::Memory>, RuntimeError>

Converts an export into the runtime’s specific memory type.

Provided Methods§

Source

fn memory(&mut self) -> Result<Memory<'_, Self>, RuntimeError>

Returns the memory export from the current Wasm module instance.

Source

fn load_memory( &mut self, ) -> Result<<Self::Runtime as Runtime>::Memory, RuntimeError>

Resolves the guest module’s memory export.

Runtimes may override this to cache the resolved handle and skip the export lookup on every host call.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a, I> InstanceWithMemory for &'a mut I
where I: InstanceWithMemory, &'a mut I: Instance<Runtime = I::Runtime> + CabiReallocAlias + CabiFreeAlias,

Source§

fn memory_from_export( &self, export: <Self::Runtime as Runtime>::Export, ) -> Result<Option<<Self::Runtime as Runtime>::Memory>, RuntimeError>

Source§

fn load_memory( &mut self, ) -> Result<<Self::Runtime as Runtime>::Memory, RuntimeError>

Implementors§

Source§

impl<UserData> InstanceWithMemory for MockInstance<UserData>

Source§

impl<UserData> InstanceWithMemory for linera_witty::wasmtime::EntrypointInstance<UserData>

Source§

impl<UserData> InstanceWithMemory for StubInstance<UserData>

Source§

impl<UserData> InstanceWithMemory for linera_witty::wasmtime::ReentrantInstance<'_, UserData>

Source§

impl<UserData: 'static> InstanceWithMemory for linera_witty::wasmer::EntrypointInstance<UserData>

Source§

impl<UserData: 'static> InstanceWithMemory for linera_witty::wasmer::ReentrantInstance<'_, UserData>