wast_encoder/helpers/
mod.rs1use std::fmt::Write;
2
3use crate::{encoder::WastEncoder, WasiModule, WasiType, WasiValue};
4
5pub trait ToWasiType {
6 fn to_wasi_type(&self) -> WasiType;
7}
8
9pub trait ToWasiValue {
10 fn to_wasi_value(&self) -> WasiValue;
11}
12
13pub(crate) trait AliasOuter {
15 fn alias_outer<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
16}
17
18pub(crate) trait AliasExport {
19 fn alias_export<W: Write>(&self, w: &mut WastEncoder<W>, module: &WasiModule) -> std::fmt::Result;
20}
21
22pub(crate) trait ComponentDefine {
24 fn component_define<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
25}
26
27pub(crate) trait LowerFunction {
28 fn lower_function<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
29 fn lower_import<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
30}
31
32pub(crate) trait TypeDefinition {
33 fn upper_type_define<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
34 fn lower_type_define<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
35}
36
37pub(crate) trait TypeReference {
38 fn upper_type<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
39 fn lower_type<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
40 fn lower_type_inner<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
41}
42
43pub(crate) trait TypeReferenceInput {
44 fn upper_input<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
45 fn lower_input<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
46}
47
48pub(crate) trait TypeReferenceOutput {
49 fn upper_output<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
50 fn lower_output<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
51}
52
53pub(crate) trait EmitDefault {
54 fn emit_default<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
56}
57
58pub(crate) trait EmitConstant {
59 fn emit_constant<W: Write>(&self, w: &mut WastEncoder<W>) -> std::fmt::Result;
61}