pub struct VMMemory(pub Box<dyn LinearMemory + 'static>);Expand description
Represents linear memory that can be either owned or shared
Tuple Fields§
§0: Box<dyn LinearMemory + 'static>Implementations§
Source§impl VMMemory
impl VMMemory
Sourcepub fn new(
memory: &MemoryType,
style: &MemoryStyle,
) -> Result<Self, MemoryError>
pub fn new( memory: &MemoryType, style: &MemoryStyle, ) -> Result<Self, MemoryError>
Creates a new linear memory instance of the correct type with specified minimum and maximum number of wasm pages.
This creates a Memory with owned metadata: this can be used to create a memory
that will be imported into Wasm modules.
Sourcepub fn get_runtime_size(&self) -> u32
pub fn get_runtime_size(&self) -> u32
Returns the number of pages in the allocated memory block
Sourcepub unsafe fn from_definition(
memory: &MemoryType,
style: &MemoryStyle,
vm_memory_location: NonNull<VMMemoryDefinition>,
) -> Result<Self, MemoryError>
pub unsafe fn from_definition( memory: &MemoryType, style: &MemoryStyle, vm_memory_location: NonNull<VMMemoryDefinition>, ) -> Result<Self, MemoryError>
Create a new linear memory instance with specified minimum and maximum number of wasm pages.
This creates a Memory with metadata owned by a VM, pointed to by
vm_memory_location: this can be used to create a local memory.
§Safety
vm_memory_locationmust point to a valid location in VM memory.
Sourcepub fn from_custom<IntoVMMemory>(memory: IntoVMMemory) -> Selfwhere
IntoVMMemory: Into<Self>,
pub fn from_custom<IntoVMMemory>(memory: IntoVMMemory) -> Selfwhere
IntoVMMemory: Into<Self>,
Creates VMMemory from a custom implementation - the following into implementations are natively supported
- VMOwnedMemory -> VMMemory
- Box<dyn LinearMemory + ’static> -> VMMemory
Trait Implementations§
Source§impl From<VMOwnedMemory> for VMMemory
impl From<VMOwnedMemory> for VMMemory
Source§fn from(mem: VMOwnedMemory) -> Self
fn from(mem: VMOwnedMemory) -> Self
Source§fn from(mem: VMSharedMemory) -> Self
fn from(mem: VMSharedMemory) -> Self
Source§impl LinearMemory for VMMemory
impl LinearMemory for VMMemory
Source§fn grow(&mut self, delta: Pages) -> Result<Pages, MemoryError>
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 grow_at_least(&mut self, min_size: u64) -> Result<(), MemoryError>
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 vmmemory(&self) -> NonNull<VMMemoryDefinition>
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 + Send + Sync + 'static>, MemoryError>
fn try_clone( &self, ) -> Result<Box<dyn LinearMemory + Send + Sync + 'static>, MemoryError>
Attempts to clone this memory (if its cloneable)
Source§fn copy(
&self,
) -> Result<Box<dyn LinearMemory + Send + Sync + 'static>, MemoryError>
fn copy( &self, ) -> Result<Box<dyn LinearMemory + Send + Sync + 'static>, MemoryError>
Copies this memory to a new memory
§unsafe fn do_wait(
&mut self,
_dst: u32,
_expected: ExpectedValue,
_timeout: Option<Duration>,
) -> Result<u32, WaiterError>
unsafe fn do_wait( &mut self, _dst: u32, _expected: ExpectedValue, _timeout: Option<Duration>, ) -> Result<u32, WaiterError>
§fn do_notify(&mut self, _dst: u32, _count: u32) -> u32
fn do_notify(&mut self, _dst: u32, _count: u32) -> u32
§fn thread_conditions(&self) -> Option<&ThreadConditions>
fn thread_conditions(&self) -> Option<&ThreadConditions>
Auto Trait Implementations§
impl Freeze for VMMemory
impl !RefUnwindSafe for VMMemory
impl Send for VMMemory
impl !Sync for VMMemory
impl Unpin for VMMemory
impl UnsafeUnpin for VMMemory
impl !UnwindSafe for VMMemory
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more