Struct VMOwnedMemory
pub struct VMOwnedMemory {
mmap: WasmMmap,
config: VMMemoryConfig,
}Expand description
A linear memory instance.
Fields§
§mmap: WasmMmap§config: VMMemoryConfigImplementations§
§impl VMOwnedMemory
impl VMOwnedMemory
pub fn new(
memory: &MemoryType,
style: &MemoryStyle,
) -> Result<VMOwnedMemory, MemoryError>
pub fn new( memory: &MemoryType, style: &MemoryStyle, ) -> Result<VMOwnedMemory, MemoryError>
Create a new linear memory instance 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.
pub fn new_with_file(
memory: &MemoryType,
style: &MemoryStyle,
backing_file: PathBuf,
memory_type: MmapType,
) -> Result<VMOwnedMemory, MemoryError>
pub fn new_with_file( memory: &MemoryType, style: &MemoryStyle, backing_file: PathBuf, memory_type: MmapType, ) -> Result<VMOwnedMemory, MemoryError>
Create a new linear memory instance with specified minimum and maximum number of wasm pages that is backed by a memory file. When set to private the file will be remaining in memory and never flush to disk, when set to shared the memory will be flushed to disk.
This creates a Memory with owned metadata: this can be used to create a memory
that will be imported into Wasm modules.
pub unsafe fn from_definition(
memory: &MemoryType,
style: &MemoryStyle,
vm_memory_location: NonNull<VMMemoryDefinition>,
) -> Result<VMOwnedMemory, MemoryError>
pub unsafe fn from_definition( memory: &MemoryType, style: &MemoryStyle, vm_memory_location: NonNull<VMMemoryDefinition>, ) -> Result<VMOwnedMemory, 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.
pub unsafe fn from_definition_with_file(
memory: &MemoryType,
style: &MemoryStyle,
vm_memory_location: NonNull<VMMemoryDefinition>,
backing_file: Option<PathBuf>,
memory_type: MmapType,
) -> Result<VMOwnedMemory, MemoryError>
pub unsafe fn from_definition_with_file( memory: &MemoryType, style: &MemoryStyle, vm_memory_location: NonNull<VMMemoryDefinition>, backing_file: Option<PathBuf>, memory_type: MmapType, ) -> Result<VMOwnedMemory, MemoryError>
Create a new linear memory instance with specified minimum and maximum number of wasm pages that is backed by a file. When set to private the file will be remaining in memory and never flush to disk, when set to shared the memory will be flushed to disk.
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.
Converts this owned memory into shared memory
pub fn copy(&self) -> Result<VMOwnedMemory, MemoryError>
pub fn copy(&self) -> Result<VMOwnedMemory, MemoryError>
Copies this memory to a new memory
Trait Implementations§
§impl Debug for VMOwnedMemory
impl Debug for VMOwnedMemory
§impl From<VMOwnedMemory> for VMMemory
impl From<VMOwnedMemory> for VMMemory
§fn from(mem: VMOwnedMemory) -> VMMemory
fn from(mem: VMOwnedMemory) -> VMMemory
§impl LinearMemory for VMOwnedMemory
impl LinearMemory for VMOwnedMemory
§fn ty(&self) -> MemoryType
fn ty(&self) -> MemoryType
Returns the type for this memory.
§fn style(&self) -> MemoryStyle
fn style(&self) -> MemoryStyle
Returns the memory style for this memory.
§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.
§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
§fn reset(&mut self) -> Result<(), MemoryError>
fn reset(&mut self) -> Result<(), MemoryError>
Resets the memory down to a zero size
§fn vmmemory(&self) -> NonNull<VMMemoryDefinition>
fn vmmemory(&self) -> NonNull<VMMemoryDefinition>
Return a VMMemoryDefinition for exposing the memory to compiled wasm code.
§fn try_clone(&self) -> Result<Box<dyn LinearMemory + Sync + Send>, MemoryError>
fn try_clone(&self) -> Result<Box<dyn LinearMemory + Sync + Send>, MemoryError>
Owned memory can not be cloned (this will always return None)
§fn copy(&self) -> Result<Box<dyn LinearMemory + Sync + Send>, MemoryError>
fn copy(&self) -> Result<Box<dyn LinearMemory + Sync + Send>, MemoryError>
Copies this memory to a new memory
Return a concrete shared memory handle for detached API sharing.
§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>
impl Send for VMOwnedMemory
impl Sync for VMOwnedMemory
Auto Trait Implementations§
impl Freeze for VMOwnedMemory
impl !RefUnwindSafe for VMOwnedMemory
impl Unpin for VMOwnedMemory
impl UnwindSafe for VMOwnedMemory
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