🌻 📖 Wasm::Wasmtime::Table

NAME

Wasm::Wasmtime::Table - Wasmtime table class

VERSION

version 0.24

SYNOPSIS

 use Wasm::Wasmtime;
 
 my $store = Wasm::Wasmtime::Store->new;
 my $instance = Wasm::Wasmtime::Instance->new(
   Wasm::Wasmtime::Module->new($store->engine, wat => q{
     (module
       (table (export "table") 1 funcref)
     )
   }),
   $store,
 );
 
 my $table = $instance->exports->table;
 print $table->type->element->kind, "\n";   # funcref
 print $table->size, "\n";                  # 1

DESCRIPTION

WARNING: WebAssembly and Wasmtime are a moving target and the interface for these modules is under active development. Use with caution.

This class represents a WebAssembly table object.

Note that Perl-space marshalling of funcref / externref table elements is limited; "get" currently returns undef for reference values.

CONSTRUCTOR

new

 my $table = Wasm::Wasmtime::Table->new(
   $store,       # Wasm::Wasmtime::Store
   $tabletype,   # Wasm::Wasmtime::TableType
 );

Creates a new table whose elements are initialized to null.

METHODS

type

 my $tabletype = $table->type;

Returns the Wasm::Wasmtime::TableType object for this table object.

size

 my $size = $table->size;

Returns the size of the table in elements.

get

 my $value = $table->get($index);

Returns the value at $index, or undef if the index is out of bounds (or the element is a reference value that cannot be represented in Perl).

grow

 my $bool = $table->grow($delta);

Grows the table by $delta null elements. Returns true on success.

SEE ALSO

Wasm
Wasm::Wasmtime

AUTHOR

Graham Ollis <plicease@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020-2026 by Graham Ollis.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.