Struct wasmtime_types::Memory
source · pub struct Memory {
pub minimum: u64,
pub maximum: Option<u64>,
pub shared: bool,
pub memory64: bool,
}
Expand description
WebAssembly linear memory.
Fields§
§minimum: u64
The minimum number of pages in the memory.
maximum: Option<u64>
The maximum number of pages in the memory.
Whether the memory may be shared between multiple threads.
memory64: bool
Whether or not this is a 64-bit memory
Implementations§
source§impl Memory
impl Memory
sourcepub fn minimum_byte_size(&self) -> Result<u64, SizeOverflow>
pub fn minimum_byte_size(&self) -> Result<u64, SizeOverflow>
Returns the minimum size, in bytes, that this memory must be.
§Errors
Returns an error if the calculation of the minimum size overflows the
u64
return type. This means that the memory can’t be allocated but
it’s deferred to the caller to how to deal with that.
sourcepub fn maximum_byte_size(&self) -> Result<u64, SizeOverflow>
pub fn maximum_byte_size(&self) -> Result<u64, SizeOverflow>
Returns the maximum size, in bytes, that this memory is allowed to be.
Note that the return value here is not an Option
despite the maximum
size of a linear memory being optional in wasm. If a maximum size
is not present in the memory’s type then a maximum size is selected for
it. For example the maximum size of a 32-bit memory is 1<<32
. The
maximum size of a 64-bit linear memory is chosen to be a value that
won’t ever be allowed at runtime.
§Errors
Returns an error if the calculation of the maximum size overflows the
u64
return type. This means that the memory can’t be allocated but
it’s deferred to the caller to how to deal with that.
sourcepub fn max_size_based_on_index_type(&self) -> u64
pub fn max_size_based_on_index_type(&self) -> u64
Returns the maximum size memory is allowed to be only based on the index type used by this memory.
For example 32-bit linear memories return 1<<32
from this method.