use wasm_bindgen_test::*; use wasm_bindgen::prelude::*; #[wasm_bindgen(module = "tests/wasm/optional_primitives.js", version = "*")] extern { fn i32_js_identity(a: Option) -> Option; fn u32_js_identity(a: Option) -> Option; fn isize_js_identity(a: Option) -> Option; fn usize_js_identity(a: Option) -> Option; fn f32_js_identity(a: Option) -> Option; fn f64_js_identity(a: Option) -> Option; fn i8_js_identity(a: Option) -> Option; fn u8_js_identity(a: Option) -> Option; fn i16_js_identity(a: Option) -> Option; fn u16_js_identity(a: Option) -> Option; fn i64_js_identity(a: Option) -> Option; fn u64_js_identity(a: Option) -> Option; fn bool_js_identity(a: Option) -> Option; fn char_js_identity(a: Option) -> Option; fn test_works(); } #[wasm_bindgen] pub fn i32_none() -> Option { None } #[wasm_bindgen] pub fn i32_zero() -> Option { Some(0) } #[wasm_bindgen] pub fn i32_one() -> Option { Some(1) } #[wasm_bindgen] pub fn i32_neg_one() -> Option { Some(-1) } #[wasm_bindgen] pub fn i32_max() -> Option { Some(i32::max_value()) } #[wasm_bindgen] pub fn i32_min() -> Option { Some(i32::min_value()) } #[wasm_bindgen] pub fn i32_identity(a: Option) -> Option { i32_js_identity(a) } #[wasm_bindgen] pub fn u32_none() -> Option { None } #[wasm_bindgen] pub fn u32_zero() -> Option { Some(0) } #[wasm_bindgen] pub fn u32_one() -> Option { Some(1) } #[wasm_bindgen] pub fn u32_max() -> Option { Some(u32::max_value()) } #[wasm_bindgen] pub fn u32_min() -> Option { Some(u32::min_value()) } #[wasm_bindgen] pub fn u32_identity(a: Option) -> Option { u32_js_identity(a) } #[wasm_bindgen] pub fn isize_none() -> Option { None } #[wasm_bindgen] pub fn isize_zero() -> Option { Some(0) } #[wasm_bindgen] pub fn isize_one() -> Option { Some(1) } #[wasm_bindgen] pub fn isize_neg_one() -> Option { Some(-1) } #[wasm_bindgen] pub fn isize_max() -> Option { Some(isize::max_value()) } #[wasm_bindgen] pub fn isize_min() -> Option { Some(isize::min_value()) } #[wasm_bindgen] pub fn isize_identity(a: Option) -> Option { isize_js_identity(a) } #[wasm_bindgen] pub fn usize_none() -> Option { None } #[wasm_bindgen] pub fn usize_zero() -> Option { Some(0) } #[wasm_bindgen] pub fn usize_one() -> Option { Some(1) } #[wasm_bindgen] pub fn usize_max() -> Option { Some(usize::max_value()) } #[wasm_bindgen] pub fn usize_min() -> Option { Some(usize::min_value()) } #[wasm_bindgen] pub fn usize_identity(a: Option) -> Option { usize_js_identity(a) } #[wasm_bindgen] pub fn f32_none() -> Option { None } #[wasm_bindgen] pub fn f32_zero() -> Option { Some(0f32) } #[wasm_bindgen] pub fn f32_one() -> Option { Some(1f32) } #[wasm_bindgen] pub fn f32_neg_one() -> Option { Some(-1f32) } #[wasm_bindgen] pub fn f32_identity(a: Option) -> Option { f32_js_identity(a) } #[wasm_bindgen] pub fn f64_none() -> Option { None } #[wasm_bindgen] pub fn f64_zero() -> Option { Some(0f64) } #[wasm_bindgen] pub fn f64_one() -> Option { Some(1f64) } #[wasm_bindgen] pub fn f64_neg_one() -> Option { Some(-1f64) } #[wasm_bindgen] pub fn f64_identity(a: Option) -> Option { f64_js_identity(a) } #[wasm_bindgen] pub fn i8_none() -> Option { None } #[wasm_bindgen] pub fn i8_zero() -> Option { Some(0) } #[wasm_bindgen] pub fn i8_one() -> Option { Some(1) } #[wasm_bindgen] pub fn i8_neg_one() -> Option { Some(-1) } #[wasm_bindgen] pub fn i8_max() -> Option { Some(i8::max_value()) } #[wasm_bindgen] pub fn i8_min() -> Option { Some(i8::min_value()) } #[wasm_bindgen] pub fn i8_identity(a: Option) -> Option { i8_js_identity(a) } #[wasm_bindgen] pub fn u8_none() -> Option { None } #[wasm_bindgen] pub fn u8_zero() -> Option { Some(0) } #[wasm_bindgen] pub fn u8_one() -> Option { Some(1) } #[wasm_bindgen] pub fn u8_max() -> Option { Some(u8::max_value()) } #[wasm_bindgen] pub fn u8_min() -> Option { Some(u8::min_value()) } #[wasm_bindgen] pub fn u8_identity(a: Option) -> Option { u8_js_identity(a) } #[wasm_bindgen] pub fn i16_none() -> Option { None } #[wasm_bindgen] pub fn i16_zero() -> Option { Some(0) } #[wasm_bindgen] pub fn i16_one() -> Option { Some(1) } #[wasm_bindgen] pub fn i16_neg_one() -> Option { Some(-1) } #[wasm_bindgen] pub fn i16_max() -> Option { Some(i16::max_value()) } #[wasm_bindgen] pub fn i16_min() -> Option { Some(i16::min_value()) } #[wasm_bindgen] pub fn i16_identity(a: Option) -> Option { i16_js_identity(a) } #[wasm_bindgen] pub fn u16_none() -> Option { None } #[wasm_bindgen] pub fn u16_zero() -> Option { Some(0) } #[wasm_bindgen] pub fn u16_one() -> Option { Some(1) } #[wasm_bindgen] pub fn u16_max() -> Option { Some(u16::max_value()) } #[wasm_bindgen] pub fn u16_min() -> Option { Some(u16::min_value()) } #[wasm_bindgen] pub fn u16_identity(a: Option) -> Option { u16_js_identity(a) } #[wasm_bindgen] pub fn i64_none() -> Option { None } #[wasm_bindgen] pub fn i64_zero() -> Option { Some(0) } #[wasm_bindgen] pub fn i64_one() -> Option { Some(1) } #[wasm_bindgen] pub fn i64_neg_one() -> Option { Some(-1) } #[wasm_bindgen] pub fn i64_max() -> Option { Some(i64::max_value()) } #[wasm_bindgen] pub fn i64_min() -> Option { Some(i64::min_value()) } #[wasm_bindgen] pub fn i64_identity(a: Option) -> Option { i64_js_identity(a) } #[wasm_bindgen] pub fn u64_none() -> Option { None } #[wasm_bindgen] pub fn u64_zero() -> Option { Some(0) } #[wasm_bindgen] pub fn u64_one() -> Option { Some(1) } #[wasm_bindgen] pub fn u64_max() -> Option { Some(u64::max_value()) } #[wasm_bindgen] pub fn u64_min() -> Option { Some(u64::min_value()) } #[wasm_bindgen] pub fn u64_identity(a: Option) -> Option { u64_js_identity(a) } #[wasm_bindgen] pub fn bool_none() -> Option { None } #[wasm_bindgen] pub fn bool_false() -> Option { Some(false) } #[wasm_bindgen] pub fn bool_true() -> Option { Some(true) } #[wasm_bindgen] pub fn bool_identity(a: Option) -> Option { bool_js_identity(a) } #[wasm_bindgen] pub fn char_none() -> Option { None } #[wasm_bindgen] pub fn char_letter() -> Option { Some('a') } #[wasm_bindgen] pub fn char_face() -> Option { Some('😀') } #[wasm_bindgen] pub fn char_identity(a: Option) -> Option { char_js_identity(a) } #[wasm_bindgen_test] fn works() { test_works(); }