Trait wasmer::vm::LinearMemory

source ·
pub trait LinearMemory: Debug + Send {
    // Required methods
    fn ty(&self) -> MemoryType;
    fn size(&self) -> Pages;
    fn style(&self) -> MemoryStyle;
    fn grow(&mut self, delta: Pages) -> Result<Pages, MemoryError>;
    fn vmmemory(&self) -> NonNull<VMMemoryDefinition>;
    fn try_clone(&self) -> Result<Box<dyn LinearMemory>, MemoryError>;
    fn copy(&mut self) -> Result<Box<dyn LinearMemory>, MemoryError>;

    // Provided methods
    fn do_wait(
        &mut self,
        _dst: NotifyLocation,
        _timeout: Option<Duration>
    ) -> Result<u32, WaiterError> { ... }
    fn do_notify(&mut self, _dst: NotifyLocation, _count: u32) -> u32 { ... }
}
Expand description

Represents memory that is used by the WebAsssembly module

Required Methods§

source

fn ty(&self) -> MemoryType

Returns the type for this memory.

source

fn size(&self) -> Pages

Returns the size of hte memory in pages

source

fn style(&self) -> MemoryStyle

Returns the memory style for this memory.

source

fn grow(&mut self, delta: Pages) -> Result<Pages, MemoryError>

Grow memory by the specified amount of wasm pages.

Returns None if memory can’t be grown by the specified amount of wasm pages.

source

fn vmmemory(&self) -> NonNull<VMMemoryDefinition>

Return a VMMemoryDefinition for exposing the memory to compiled wasm code.

source

fn try_clone(&self) -> Result<Box<dyn LinearMemory>, MemoryError>

Attempts to clone this memory (if its clonable)

source

fn copy(&mut self) -> Result<Box<dyn LinearMemory>, MemoryError>

Copies this memory to a new memory

Provided Methods§

source

fn do_wait( &mut self, _dst: NotifyLocation, _timeout: Option<Duration> ) -> Result<u32, WaiterError>

Add current thread to the waiter hash, and wait until notified or timout. Return 0 if the waiter has been notified, 2 if the timeout occured, or None if en error happened

source

fn do_notify(&mut self, _dst: NotifyLocation, _count: u32) -> u32

Notify waiters from the wait list. Return the number of waiters notified

Implementors§