pub struct VMOwnedMemory { /* private fields */ }
Expand description
A linear memory instance.
Implementations§
Source§impl VMOwnedMemory
impl VMOwnedMemory
Sourcepub fn new(
memory: &MemoryType,
style: &MemoryStyle,
) -> Result<Self, MemoryError>
pub fn new( memory: &MemoryType, style: &MemoryStyle, ) -> Result<Self, 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.
Sourcepub fn new_with_file(
memory: &MemoryType,
style: &MemoryStyle,
backing_file: PathBuf,
memory_type: MmapType,
) -> Result<Self, MemoryError>
pub fn new_with_file( memory: &MemoryType, style: &MemoryStyle, backing_file: PathBuf, memory_type: MmapType, ) -> Result<Self, 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 remaing 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.
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_location
must point to a valid location in VM memory.
Sourcepub unsafe fn from_definition_with_file(
memory: &MemoryType,
style: &MemoryStyle,
vm_memory_location: NonNull<VMMemoryDefinition>,
backing_file: Option<PathBuf>,
memory_type: MmapType,
) -> Result<Self, 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<Self, 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 remaing 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_location
must point to a valid location in VM memory.
Converts this owned memory into shared memory
Sourcepub fn copy(&mut self) -> Result<Self, MemoryError>
pub fn copy(&mut self) -> Result<Self, MemoryError>
Copies this memory to a new memory
Trait Implementations§
Source§impl Debug for VMOwnedMemory
impl Debug for VMOwnedMemory
Source§impl From<VMOwnedMemory> for VMMemory
impl From<VMOwnedMemory> for VMMemory
Source§fn from(mem: VMOwnedMemory) -> Self
fn from(mem: VMOwnedMemory) -> Self
Source§impl LinearMemory for VMOwnedMemory
impl LinearMemory for VMOwnedMemory
Source§fn ty(&self) -> MemoryType
fn ty(&self) -> MemoryType
Returns the type for this memory.
Source§fn style(&self) -> MemoryStyle
fn style(&self) -> MemoryStyle
Returns the memory style 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 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 + 'static>, MemoryError>
fn try_clone(&self) -> Result<Box<dyn LinearMemory + 'static>, MemoryError>
Owned memory can not be cloned (this will always return None)
Source§fn copy(&mut self) -> Result<Box<dyn LinearMemory + 'static>, MemoryError>
fn copy(&mut self) -> Result<Box<dyn LinearMemory + 'static>, MemoryError>
Copies this memory to a new memory
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 do_notify(&mut self, _dst: NotifyLocation, _count: u32) -> u32
fn do_notify(&mut self, _dst: NotifyLocation, _count: u32) -> u32
Source§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§
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<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out
indicating that a T
is niched.