我想从 JavaScript 传递一个文件,并在 Rust WebAssembly 中以 u8 数组的形式访问它。我已经通过分配内存和传递指针在 Emscripten c++ 缓冲区中完成了此操作,但我无法在 RUST 和 wasm-bindgen 中理解它。
如果您公开带有参数的函数data: &[u8]
#[wasm_bindgen]
#[allow(non_snake_case)]
#[no_mangle]
pub fn processFile(fileData: &[u8])
你可以从 JavaScript 将字节数组传递给它
let fileData = new Uint8Array(23);
// populate data ...
mod.processFile(fileData)
也许只是我正在使用的版本
λ wasm-pack -V
wasm-pack 0.8.1
数组长度可能是一个问题,(我的代码有固定长度的数据(我会在函数中传递 len 并对其进行验证,因为我不确定 rustc 如何验证它。