1 //! Integation 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] 27 pub(crate) fn canonicalize_nan32(val: f32) -> f32 { 28 if val.is_nan() { 29 f32::NAN 30 } else { 31 val 32 } 33 } 34 35 #[inline] 36 pub(crate) fn canonicalize_nan64(val: f64) -> f64 { 37 if val.is_nan() { 38 f64::NAN 39 } else { 40 val 41 } 42 } 43