Так что я некоторое время борюсь, потому что компилятор Rust не даст мне достаточной информации об этой проблеме.
Я пытаюсь скомпилировать Rust-библиотеку в модуль wasm с wasm-pack build --out-dir [dir]
, но каждый раз, когда я пытаюсь скомпилировать, выдает эту ошибку:
error[E0597]: `*arg0` does not live long enough
--> src/lib.rs:10:1
|
10 | #[wasm_bindgen]
| ^^^^^^^^^^^^^^-
| | |
| | `*arg0` dropped here while still borrowed
| borrowed value does not live long enough
| argument requires that `*arg0` is borrowed for `'static`
error: aborting due to previous error
Код:
use wasm_bindgen::prelude::*;
use wasm_bindgen_futures::JsFuture;
use js_sys;
#[wasm_bindgen]
pub async fn calculation(x:i32,y:i32) -> Result<JsValue,JsValue>{
let f = js_sys::Promise::resolve(&JsValue::from_str("Mama"));
let p = wasm_bindgen_futures::JsFuture::from(f).await?;
Ok((p))
}
#[wasm_bindgen]
pub async fn picture_calculation(picture: &[u8]) -> JsValue{
JsValue::from_str("Hello")
}