View Source Orb.Import (Orb v0.2.2)
Define an interface to be imported into WebAssembly.
Each function declaration is turned into an (import) WebAssembly instruction.
defmodule Log do
use Orb.Import, name: :log
defw logi32(value: I32)
defw logi64(value: I64)
end
defmodule Time do
use Orb.Import, name: :time
defw get_unix_time(), I64
end
defmodule Example do
use Orb
Orb.Import.register(Log)
Orb.Import.register(Time)
defw example() do
Log.logi32(99)
Log.logi64(Time.get_unix_time())
end
end
Summary
Functions
Register an import module under namespace.
Functions
Register an import module under namespace.
The module is defined via use Orb.Import. The namespace is the local name the import is registered under.
For each function defined within module an (import) instruction is defined in the outputted WebAssembly:
(module $example
(import "namespace" "function1" (func $function1 (param $a i32) (result i32)))
(import "namespace" "function2" (func $function2 (param $a i32) (result i32)))
(import "namespace" "function3" (func $function3 (param $a i32) (result i32)))
)