wasmer_vm

Trait LinearMemory

Source
pub trait LinearMemory
where Self: 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 + 'static>, MemoryError>; fn copy(&mut self) -> Result<Box<dyn LinearMemory + 'static>, MemoryError>; // Provided methods fn grow_at_least(&mut self, _min_size: u64) -> Result<(), MemoryError> { ... } fn reset(&mut self) -> Result<(), MemoryError> { ... } fn do_wait( &mut self, _dst: NotifyLocation, _timeout: Option<Duration>, ) -> Result<u32, WaiterError> { ... } fn do_notify(&mut self, _dst: NotifyLocation, _count: u32) -> u32 { ... } fn thread_conditions(&self) -> Option<&ThreadConditions> { ... } }
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 + 'static>, MemoryError>

Attempts to clone this memory (if its clonable)

Source

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

Copies this memory to a new memory

Provided Methods§

Source

fn grow_at_least(&mut self, _min_size: u64) -> Result<(), MemoryError>

Grows the memory to at least a minimum size. If the memory is already big enough for the min size then this function does nothing

Source

fn reset(&mut self) -> Result<(), MemoryError>

Resets the memory back to zero length

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

Source

fn thread_conditions(&self) -> Option<&ThreadConditions>

Access the internal atomics handler.

Will be None if the memory does not support atomics.

Implementors§