pub struct VMMemory(pub Box<dyn LinearMemory>);Expand description
Represents linear memory that can be either owned or shared
Tuple Fields§
§0: Box<dyn LinearMemory>Implementations§
Source§impl VMMemory
impl VMMemory
Sourcepub fn new(
memory: &MemoryType,
style: &MemoryStyle,
) -> Result<VMMemory, MemoryError>
pub fn new( memory: &MemoryType, style: &MemoryStyle, ) -> Result<VMMemory, 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<VMMemory, MemoryError>
pub unsafe fn from_definition( memory: &MemoryType, style: &MemoryStyle, vm_memory_location: NonNull<VMMemoryDefinition>, ) -> Result<VMMemory, 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) -> VMMemory
pub fn from_custom<IntoVMMemory>(memory: IntoVMMemory) -> VMMemory
Creates VMMemory from a custom implementation - the following into implementations are natively supported
- VMOwnedMemory -> VMMemory
- Box<dyn LinearMemory + ’static> -> VMMemory
Sourcepub fn copy(&mut self) -> Result<Box<dyn LinearMemory>, MemoryError>
pub fn copy(&mut self) -> Result<Box<dyn LinearMemory>, MemoryError>
Copies this memory to a new memory
Trait Implementations§
Source§impl From<VMOwnedMemory> for VMMemory
impl From<VMOwnedMemory> for VMMemory
Source§fn from(mem: VMOwnedMemory) -> VMMemory
fn from(mem: VMOwnedMemory) -> VMMemory
Source§fn from(mem: VMSharedMemory) -> VMMemory
fn from(mem: VMSharedMemory) -> VMMemory
Source§impl LinearMemory for VMMemory
impl LinearMemory for VMMemory
Source§fn ty(&self) -> MemoryType
fn ty(&self) -> MemoryType
Returns the type for this memory.
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 style(&self) -> MemoryStyle
fn style(&self) -> MemoryStyle
Returns the memory style for this memory.
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>, MemoryError>
fn try_clone(&self) -> Result<Box<dyn LinearMemory>, MemoryError>
Attempts to clone this memory (if its clonable)
Source§fn copy(&mut self) -> Result<Box<dyn LinearMemory>, MemoryError>
fn copy(&mut self) -> Result<Box<dyn LinearMemory>, MemoryError>
Copies this memory to a new memory
Source§fn do_notify(&mut self, dst: NotifyLocation, count: u32) -> u32
fn do_notify(&mut self, dst: NotifyLocation, count: u32) -> u32
Notify waiters from the wait list. Return the number of waiters notified
Source§fn do_wait(
&mut self,
dst: NotifyLocation,
timeout: Option<Duration>,
) -> Result<u32, WaiterError>
fn do_wait( &mut self, dst: NotifyLocation, timeout: Option<Duration>, ) -> Result<u32, WaiterError>
Source§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§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§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
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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