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§