Instance
An Instance
is an instantiation of a Module
, which can be used to execute WASM code. The Instance
class is a wrapper around the wasmtime::Instance
struct.
Constructing an Instance
is usually done with a Linker
, which provides all the imports the Module
requires.
Methods​
Action? GetAction<A,B,C...>(string name)
​
Try to get a Function
from this Instance
with the given name which takes arguments A
,B
,C
etc (up to 12 parameters) and returns nothing.
Func<A,B,C,...,R> GetFunction<A,B,C...R>(string name)
​
Try to get a Function
from this Instance
with the given name which takes arguments A
,B
,C
etc (up to 12 parameters) and returns R
. If the function has multiple return types use a tuple as R
.
// Get a function from WASM
var func = instance.GetFunction<int, float, (float, int)>("demo_function");
if (func == null)
throw new Exception("Oh no");
// Call it
(float, int) result = func(1, 2f);
Function? GetFunction(string name, Type? returnType, params Type[] parameterTypes)
​
Try to get a Function
from this Instance
with the given name, and which returns returnType
and accepts parameterTypes
.
Using the GetAction<>
/GetFunction<>
versions are safer to use and are much faster to call.
Function? GetFunction(string name)
​
Try to get a Function
from this Instance
with the given name.
Table? GetTable(string name)
​
Try to get a Table
from this Instance
with the given name.
Memory? GetMemory(string name)
​
Try to get a Memory
from this Instance
with the given name.
Global? GetGlobal(string name)
​
Try to get a Global
from this Instance
with the given name.