pub struct VMTable { /* private fields */ }
Expand description
A table instance.
Implementations§
Source§impl VMTable
impl VMTable
Sourcepub fn new(table: &TableType, style: &TableStyle) -> Result<Self, String>
pub fn new(table: &TableType, style: &TableStyle) -> Result<Self, String>
Create a new linear table instance with specified minimum and maximum number of elements.
This creates a Table
with metadata owned by a VM, pointed to by
vm_table_location
: this can be used to create a local table.
Sourcepub fn get_runtime_size(&self) -> u32
pub fn get_runtime_size(&self) -> u32
Returns the size of the table
Sourcepub unsafe fn from_definition(
table: &TableType,
style: &TableStyle,
vm_table_location: NonNull<VMTableDefinition>,
) -> Result<Self, String>
pub unsafe fn from_definition( table: &TableType, style: &TableStyle, vm_table_location: NonNull<VMTableDefinition>, ) -> Result<Self, String>
Create a new linear table instance with specified minimum and maximum number of elements.
This creates a Table
with metadata owned by a VM, pointed to by
vm_table_location
: this can be used to create a local table.
§Safety
vm_table_location
must point to a valid location in VM memory.
Sourcepub fn style(&self) -> &TableStyle
pub fn style(&self) -> &TableStyle
Returns the style for this Table.
Sourcepub fn grow(&mut self, delta: u32, init_value: TableElement) -> Option<u32>
pub fn grow(&mut self, delta: u32, init_value: TableElement) -> Option<u32>
Grow table by the specified amount of elements.
Returns None
if table can’t be grown by the specified amount
of elements, otherwise returns the previous size of the table.
Sourcepub fn get(&self, index: u32) -> Option<TableElement>
pub fn get(&self, index: u32) -> Option<TableElement>
Get reference to the specified element.
Returns None
if the index is out of bounds.
Sourcepub fn vmtable(&self) -> NonNull<VMTableDefinition>
pub fn vmtable(&self) -> NonNull<VMTableDefinition>
Return a VMTableDefinition
for exposing the table to compiled wasm code.
Sourcepub fn copy(
&mut self,
src_table: &Self,
dst_index: u32,
src_index: u32,
len: u32,
) -> Result<(), Trap>
pub fn copy( &mut self, src_table: &Self, dst_index: u32, src_index: u32, len: u32, ) -> Result<(), Trap>
Copy len
elements from src_table[src_index..]
into dst_table[dst_index..]
.
§Errors
Returns an error if the range is out of bounds of either the source or destination tables.
Sourcepub fn copy_on_write(&self) -> Result<Self, String>
pub fn copy_on_write(&self) -> Result<Self, String>
Copies the table into a new table
Trait Implementations§
Auto Trait Implementations§
impl Freeze for VMTable
impl !RefUnwindSafe for VMTable
impl !Send for VMTable
impl !Sync for VMTable
impl Unpin for VMTable
impl UnwindSafe for VMTable
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.