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] 27 pub(crate) fn canonicalize_nan32(val: f32) -> f32 { 28 if val.is_nan() { f32::NAN } else { val } 29 } 30 31 #[inline] 32 pub(crate) fn canonicalize_nan64(val: f64) -> f64 { 33 if val.is_nan() { f64::NAN } else { val } 34 } 35