1 //! Integration with wasm-wave: string representations of values and types
2
3 #[cfg(feature = "component-model")]
4 mod component;
5 mod core;
6
7 macro_rules! unwrap_val {
8 ($val:expr, $case:path, $name:expr) => {
9 match $val {
10 $case(v) => v,
11 _ => panic!("called unwrap_{name} on non-{name} value", name = $name),
12 }
13 };
14 }
15 macro_rules! unwrap_2val {
16 ($val:expr, $case:path, $name:expr) => {
17 match $val {
18 $case(n, v) => (n, v),
19 _ => panic!("called unwrap_{name} on non-{name} value", name = $name),
20 }
21 };
22 }
23 pub(crate) use unwrap_2val;
24 pub(crate) use unwrap_val;
25
26 #[inline]
canonicalize_nan32(val: f32) -> f3227 pub(crate) fn canonicalize_nan32(val: f32) -> f32 {
28 if val.is_nan() { f32::NAN } else { val }
29 }
30
31 #[inline]
canonicalize_nan64(val: f64) -> f6432 pub(crate) fn canonicalize_nan64(val: f64) -> f64 {
33 if val.is_nan() { f64::NAN } else { val }
34 }
35