Module wasmer_interface_types_fl::encoders::wat
source · Expand description
Writes the AST into a string representing WIT with its textual format.
§Example
use wasmer_interface_types::{
ast::{Adapter, Export, Implementation, Import, Interfaces, Type},
encoders::wat::*,
interpreter::Instruction,
types::IType,
};
let input: String = (&Interfaces {
types: vec![Type::Function {
inputs: vec![IType::I32],
outputs: vec![IType::S8],
}],
imports: vec![Import {
namespace: "ns",
name: "foo",
function_type: 0,
}],
adapters: vec![Adapter {
function_type: 0,
instructions: vec![Instruction::ArgumentGet { index: 42 }],
}],
exports: vec![Export {
name: "bar",
function_type: 0,
}],
implementations: vec![Implementation {
core_function_type: 0,
adapter_function_type: 1,
}],
})
.to_string();
let output = r#";; Types
(@interface type (func
(param i32)
(result s8)))
;; Imports
(@interface import "ns" "foo" (func (type 0)))
;; Adapters
(@interface func (type 0)
arg.get 42)
;; Exports
(@interface export "bar" (func 0))
;; Implementations
(@interface implement (func 0) (func 1))"#;
assert_eq!(input, output);