Struct wasmi::MemoryRef[][src]

pub struct MemoryRef(_);

Reference to a memory (See MemoryInstance for details).

This reference has a reference-counting semantics.

Methods from Deref<Target = MemoryInstance>

Returns number of pages this MemoryInstance was created with.

Returns maximum amount of pages this MemoryInstance can grow to.

Returns None if there is no limit set. Maximum memory size cannot exceed 65536 pages or 4GiB.

Returns current linear memory size.

Maximum memory size cannot exceed 65536 pages or 4GiB.

Example

To convert number of pages to number of bytes you can use the following code:

use wasmi::MemoryInstance;
use wasmi::memory_units::*;

let memory = MemoryInstance::alloc(Pages(1), None).unwrap();
let byte_size: Bytes = memory.current_size().into();
assert_eq!(
    byte_size,
    Bytes(65536),
);

Get value from memory at given offset.

Copy data from memory at given offset.

This will allocate vector for you. If you can provide a mutable slice you can use get_into.

Copy data from given offset in the memory into target slice.

Errors

Returns Err if the specified region is out of bounds.

Copy data in the memory at given offset.

Copy value in the memory at given offset.

Increases the size of the linear memory by given number of pages. Returns previous memory size if succeeds.

Errors

Returns Err if attempted to allocate more memory than permited by the limit.

Copy contents of one memory region to another.

Semantically equivalent to memmove.

Errors

Returns Err if either of specified regions is out of bounds.

Copy contents of one memory region to another (non-overlapping version).

Semantically equivalent to memcpy. but returns Error if source overlaping with destination.

Errors

Returns Err if:

  • either of specified regions is out of bounds,
  • these regions overlaps.

Fill the memory region with the specified value.

Semantically equivalent to memset.

Errors

Returns Err if the specified region is out of bounds.

Fill the specified memory region with zeroes.

Errors

Returns Err if the specified region is out of bounds.

Provides direct access to the underlying memory buffer.

Panics

Any call that requires write access to memory (such as set, clear, etc) made within the closure will panic. Note that the buffer size may be arbitraty. Proceed with caution.

Provides direct mutable access to the underlying memory buffer.

Panics

Any calls that requires either read or write access to memory (such as get, set, copy, etc) made within the closure will panic. Note that the buffer size may be arbitraty. The closure may however resize it. Proceed with caution.

Trait Implementations

impl Clone for MemoryRef
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Debug for MemoryRef
[src]

Formats the value using the given formatter. Read more

impl Deref for MemoryRef
[src]

The resulting type after dereferencing.

Dereferences the value.

Auto Trait Implementations

impl !Send for MemoryRef

impl !Sync for MemoryRef