Struct wasmtime::Table [−][src]
A WebAssembly table
, or an array of values.
Like Memory
a table is an indexed array of values, but unlike Memory
it’s an array of WebAssembly values rather than bytes. One of the most
common usages of a table is a function table for wasm modules, where each
element has the Func
type.
Tables, like globals, are not threadsafe and can only be used on one thread. Tables can be grown in size and each element can be read/written.
Table
and Clone
Tables are internally reference counted so you can clone
a Table
. The
cloning process only performs a shallow clone, so two cloned Table
instances are equivalent in their functionality.
Implementations
impl Table
[src]
pub fn new(store: &Store, ty: TableType, init: Val) -> Result<Table>
[src]
Creates a new Table
with the given parameters.
store
- a global cache to store information inty
- the type of this table, containing both the element type as well as the initial size and maximum size, if any.init
- the initial value to fill all table entries with, if the table starts with an initial size.
Errors
Returns an error if init
does not match the element type of the table.
pub fn ty(&self) -> TableType
[src]
Returns the underlying type of this table, including its element type as well as the maximum/minimum lower bounds.
pub fn get(&self, index: u32) -> Option<Val>
[src]
Returns the table element value at index
.
Returns None
if index
is out of bounds.
pub fn set(&self, index: u32, val: Val) -> Result<()>
[src]
Writes the val
provided into index
within this table.
Errors
Returns an error if index
is out of bounds or if val
does not have
the right type to be stored in this table.
pub fn size(&self) -> u32
[src]
Returns the current size of this table.
pub fn grow(&self, delta: u32, init: Val) -> Result<u32>
[src]
Grows the size of this table by delta
more elements, initialization
all new elements to init
.
Returns the previous size of this table if successful.
Errors
Returns an error if the table cannot be grown by delta
, for example
if it would cause the table to exceed its maximum size. Also returns an
error if init
is not of the right type.
pub fn copy(
dst_table: &Table,
dst_index: u32,
src_table: &Table,
src_index: u32,
len: u32
) -> Result<()>
[src]
dst_table: &Table,
dst_index: u32,
src_table: &Table,
src_index: u32,
len: u32
) -> Result<()>
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.
pub fn fill(&self, dst: u32, val: Val, len: u32) -> Result<()>
[src]
Fill table[dst..(dst + len)]
with the given value.
Errors
Returns an error if
-
val
is not of the same type as this table’s element type, -
the region to be filled is out of bounds, or
-
val
comes from a differentStore
from this table.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Table
impl !Send for Table
impl !Sync for Table
impl Unpin for Table
impl !UnwindSafe for Table
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
[src]
pub const ALIGN: usize
[src]
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
[src]
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
[src]
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
[src]
pub unsafe fn drop(ptr: usize)
[src]
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,