wasmer/vm/
mod.rs

1//! This module defines traits to handle abstractions created by the runtimes.
2
3mod impls;
4
5use crate::{VMExternToExtern, macros::backend::gen_rt_ty};
6use wasmer_types::RawValue;
7
8macro_rules! define_vm_like {
9    ($name:ident $(, $derives:ident)*) => {
10        paste::paste! {
11            gen_rt_ty! {
12                #[derive($($derives,)*)]
13                pub [<VM $name>](vm::[<VM $name>]);
14            }
15        }
16    };
17}
18
19define_vm_like!(Extern);
20define_vm_like!(ExternFunction, Debug);
21define_vm_like!(ExternGlobal);
22define_vm_like!(ExternTag);
23define_vm_like!(ExternMemory);
24define_vm_like!(ExternTable);
25//define_vm_like!(ExternObj, Debug);
26define_vm_like!(FunctionCallback, Debug);
27define_vm_like!(FunctionBody);
28define_vm_like!(FunctionEnvironment, Debug);
29define_vm_like!(Instance, Debug);
30define_vm_like!(Trampoline, Debug);
31
32//define_vm_like!(Config);
33define_vm_like!(Function, Debug);
34define_vm_like!(Global, Debug);
35define_vm_like!(Tag, Debug);
36define_vm_like!(Memory, Debug);
37define_vm_like!(SharedMemory);
38define_vm_like!(Table, Debug);
39
40define_vm_like!(ExceptionRef);
41define_vm_like!(ExternRef);
42define_vm_like!(FuncRef);