1mod 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);
25define_vm_like!(FunctionCallback, Debug);
27define_vm_like!(FunctionBody);
28define_vm_like!(FunctionEnvironment, Debug);
29define_vm_like!(Instance, Debug);
30define_vm_like!(Trampoline, Debug);
31
32define_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);