pub use js_intern_core::js_intern;
pub use js_intern_proc_macro::try_js_intern;
#[cfg(test)]
mod tests {
use super::*;
use wasm_bindgen_test::*;
#[wasm_bindgen_test]
fn can_convert_f64() {
assert_eq!(Some(20.0), js_intern!(20.0).as_f64());
assert!(js_intern!(std::f64::NAN).as_f64().unwrap().is_nan());
}
#[wasm_bindgen_test]
fn can_convert_int() {
assert_eq!(Some(1.0), js_intern!(1).as_f64());
assert!(js_intern!(std::f64::NAN).as_f64().unwrap().is_nan());
}
#[wasm_bindgen_test]
fn deduplicates_f64() {
assert_eq!(js_intern!(15.0) as *const _, js_intern!(15.0) as *const _);
}
#[wasm_bindgen_test]
fn can_convert_str() {
assert_eq!(js_intern!("b").as_string(), Some(String::from("b")));
}
#[wasm_bindgen_test]
fn deduplicates_str() {
assert_eq!(js_intern!("a") as *const _, js_intern!("a") as *const _);
}
#[wasm_bindgen_test]
fn can_convert_bool() {
assert_eq!(js_intern!(true).as_bool(), Some(true))
}
#[wasm_bindgen_test]
fn deduplicates_bool() {
assert_eq!(js_intern!(true) as *const _, js_intern!(true) as *const _);
}
}