NAME
Wasm::Wasmtime::Module::Exports - Wasmtime module exports class
VERSION
version 0.23
SYNOPSIS
use Wasm::Wasmtime;
my $module = Wasm::Wasmtime::Module->new( wat => q{
(module
(func (export "add") (param i32 i32) (result i32)
local.get 0
local.get 1
i32.add)
)
});
my $exports = $module->exports; # Wasm::Wasmtime::Module::Exports
my $type1 = $exports->add; # this is the Wasm::Wasmtime::FuncType for add
my $type2 = $exports->{add}; # this is also the Wasm::Wasmtime::FuncType for add
my $exporttype = $exports->[0]; # this is the Wasm::Wasmtime::ExportType for add
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 the exports from a module. It can be used in a number of different ways.
- autoload methods
-
my $foo = $module->exports->foo;
Calling the name of an export as a method returns the Wasm::Wasmtime::ExternType for the export.
- As a hash reference
-
my $foo = $module->exports->{foo};
Using the Exports class as a hash reference allows you to get exports that might clash with common Perl methods like
new
,can
,DESTROY
, etc. The Wasm::Wasmtime::ExternType will be returned. - An array reference
-
my $foo = $module->exports->[0];
This will give you the list of exports in the order that they are defined in your WebAssembly. The object returned is a Wasm::Wasmtime::ExportType, which is essentially a name and a Wasm::Wasmtime::ExternType.
SEE ALSO
AUTHOR
Graham Ollis <plicease@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2020-2022 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.