Struct wasmer_runtime_near::Memory [−][src]
pub struct Memory { /* fields omitted */ }
Expand description
A shared or unshared wasm linear memory.
A Memory
represents the memory used by a wasm instance.
Implementations
Create a new Memory
from a MemoryDescriptor
Usage:
fn create_memory() -> Result<()> { let descriptor = MemoryDescriptor::new(Pages(10), None, false).unwrap(); let memory = Memory::new(descriptor)?; Ok(()) }
Return the MemoryDescriptor
that this memory
was created with.
Grow this memory by the specified number of pages.
Return a “view” of the currently accessible memory. By
default, the view is unsynchronized, using regular memory
accesses. You can force a memory view to use atomic accesses
by calling the atomically
method.
Notes:
This method is safe (as in, it won’t cause the host to crash or have UB), but it doesn’t obey rust’s rules involving data races, especially concurrent ones. Therefore, if this memory is shared between multiple threads, a single memory location can be mutated concurrently without synchronization.
Usage:
// Without synchronization. let view: MemoryView<u8> = memory.view(); for byte in view[0x1000 .. 0x1010].iter().map(Cell::get) { println!("byte: {}", byte); } // With synchronization. let atomic_view = view.atomically(); for byte in atomic_view[0x1000 .. 0x1010].iter().map(|atom| atom.load(Ordering::SeqCst)) { println!("byte: {}", byte); }
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Memory
impl !UnwindSafe for Memory
Blanket Implementations
Mutably borrows from an owned value. Read more
type Output = T
type Output = T
Should always be Self