Enum wasmtime_runtime::Memory[][src]

pub enum Memory {
    Static {
        base: &'static mut [u8],
        size: usize,
        make_accessible: fn(_: *mut u8, _: usize) -> Result<()>,
    },
    Dynamic(Box<dyn RuntimeLinearMemory>),
}
Expand description

Representation of a runtime wasm linear memory.

Variants

Static

A “static” memory where the lifetime of the backing memory is managed elsewhere. Currently used with the pooling allocator.

Fields of Static

base: &'static mut [u8]

The memory in the host for this wasm memory. The length of this slice is the maximum size of the memory that can be grown to.

size: usize

The current size, in bytes, of this memory.

make_accessible: fn(_: *mut u8, _: usize) -> Result<()>

A callback which makes portions of base accessible for when memory is grown. Otherwise it’s expected that accesses to base will fault.

Dynamic(Box<dyn RuntimeLinearMemory>)

A “dynamic” memory whose data is managed at runtime and lifetime is tied to this instance.

Tuple Fields of Dynamic

0: Box<dyn RuntimeLinearMemory>

Implementations

Create a new dynamic (movable) memory instance for the specified plan.

Create a new static (immovable) memory instance for the specified plan.

Returns the number of allocated wasm pages.

Returns the maximum number of pages the memory can grow to at runtime.

Returns None if the memory is unbounded.

The runtime maximum may not be equal to the maximum from the linear memory’s Wasm type when it is being constrained by an instance allocator.

Grow memory by the specified amount of wasm pages.

Returns None if memory can’t be grown by the specified amount of wasm pages. Returns Some with the old size of memory, in bytes, on successful growth.

Safety

Resizing the memory can reallocate the memory buffer for dynamic memories. An instance’s VMContext may have pointers to the memory’s base and will need to be fixed up after growing the memory.

Generally, prefer using InstanceHandle::memory_grow, which encapsulates this unsafety.

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

Trait Implementations

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.