use wasm_bindgen::prelude::*; use wasm_bindgen_test::*; #[wasm_bindgen(module = "tests/wasm/futures.js")] extern "C" { fn call_exports() -> js_sys::Promise; } #[wasm_bindgen_test] async fn smoke() { wasm_bindgen_futures::JsFuture::from(call_exports()) .await .unwrap(); } #[wasm_bindgen] pub async fn async_do_nothing() {} #[wasm_bindgen] pub async fn async_return_1() -> JsValue { 1.into() } #[wasm_bindgen] pub async fn async_return_2() -> u32 { 2 } #[wasm_bindgen] pub async fn async_nothing_again() -> Result<(), JsValue> { Ok(()) } #[wasm_bindgen] pub async fn async_return_3() -> Result<u32, JsValue> { Ok(3) } #[wasm_bindgen] pub async fn async_return_4() -> Result<JsValue, JsValue> { Ok(4.into()) } #[wasm_bindgen] pub struct AsyncCustomReturn { pub val: u32, } #[wasm_bindgen] pub async fn async_return_5() -> AsyncCustomReturn { AsyncCustomReturn { val: 5 } } #[wasm_bindgen] pub async fn async_return_6() -> Result<AsyncCustomReturn, JsValue> { Ok(AsyncCustomReturn { val: 6 }) } #[wasm_bindgen] pub async fn async_return_7() -> Result<AsyncCustomReturn, u32> { Ok(AsyncCustomReturn { val: 7 }) } #[wasm_bindgen] pub async fn async_return_8() -> Result<AsyncCustomReturn, AsyncCustomReturn> { Ok(AsyncCustomReturn { val: 8 }) } #[wasm_bindgen] pub async fn async_throw() -> Result<(), js_sys::Error> { Err(js_sys::Error::new("async message")) }