1#[cfg(feature = "sys")]
5pub mod sys;
6
7#[cfg(feature = "wamr")]
8pub mod wamr;
9
10#[cfg(feature = "wasmi")]
11pub mod wasmi;
12
13#[cfg(feature = "v8")]
14pub mod v8;
15
16#[cfg(feature = "js")]
17pub mod js;
18
19#[cfg(feature = "jsc")]
20pub mod jsc;
21
22#[non_exhaustive]
23#[derive(Debug, Clone, Copy)]
24pub enum BackendKind {
26 #[cfg(feature = "cranelift")]
27 Cranelift,
29
30 #[cfg(feature = "llvm")]
31 LLVM,
33
34 #[cfg(feature = "singlepass")]
35 Singlepass,
37
38 #[cfg(feature = "sys")]
39 Headless,
41
42 #[cfg(feature = "wamr")]
43 Wamr,
45
46 #[cfg(feature = "wasmi")]
47 Wasmi,
49
50 #[cfg(feature = "v8")]
51 V8,
53
54 #[cfg(feature = "js")]
55 Js,
57
58 #[cfg(feature = "jsc")]
59 Jsc,
61}
62
63impl Default for BackendKind {
64 fn default() -> Self {
65 #[cfg(feature = "sys-default")]
66 {
67 #[cfg(feature = "cranelift")]
68 {
69 return Self::Cranelift;
70 }
71 #[cfg(feature = "singlepass")]
72 {
73 return Self::Singlepass;
74 }
75 #[cfg(feature = "llvm")]
76 {
77 return Self::LLVM;
78 }
79 return Self::Headless;
80 }
81
82 #[cfg(feature = "wamr-default")]
83 {
84 return Self::Wamr;
85 }
86
87 #[cfg(feature = "wasmi-default")]
88 {
89 return Self::Wasmi;
90 }
91
92 #[cfg(feature = "v8-default")]
93 {
94 return Self::V8;
95 }
96
97 #[cfg(feature = "js-default")]
98 {
99 return Self::Js;
100 }
101
102 #[cfg(feature = "jsc-default")]
103 {
104 return Self::Jsc;
105 }
106
107 #[cfg(feature = "sys")]
108 {
109 #[cfg(feature = "cranelift")]
110 {
111 return Self::Cranelift;
112 }
113 #[cfg(feature = "singlepass")]
114 {
115 return Self::Singlepass;
116 }
117 #[cfg(feature = "llvm")]
118 {
119 return Self::LLVM;
120 }
121 return Self::Headless;
122 }
123
124 #[cfg(feature = "wamr")]
125 {
126 return Self::Wamr;
127 }
128
129 #[cfg(feature = "wasmi")]
130 {
131 return Self::Wasmi;
132 }
133
134 #[cfg(feature = "v8")]
135 {
136 return Self::V8;
137 }
138
139 #[cfg(feature = "js")]
140 {
141 return Self::Js;
142 }
143
144 #[cfg(feature = "jsc")]
145 {
146 return Self::Jsc;
147 }
148
149 panic!("No runtime enabled!")
150 }
151}