2

我编写了一个函数,它将一个 u8 数组作为输入并输出一个 Uint8Array

use js_sys::Uint8Array;

#[wasm_bindgen]
pub extern "C" fn ab(seed: &[u8]) -> Uint8Array {
    let array: Array = seed.into_iter().map(|x| JsValue::from(*x as u8)).collect();
    let u8a = Uint8Array::new(&array);
    u8a
}

然后用wasm-pack.

作为输出,我得到以下打字稿函数定义:

export function ab(a: number, b: number): number;
export function __wbindgen_malloc(a: number): number;

ab() 的两个输入数字是多少?应该如何使用这些功能?

此外,是否有更好的方法可以直接从 Rust 分配给 wasm 内存,以便wasm-packed 函数定义与 rust 函数定义匹配?

4

1 回答 1

4

wasm_bindgen生成两个 JS 文件。您正在查看该<name>_bg.js文件,该文件将“原始”绑定公开到 webassembly 模块,其中参数是指针。它还应该生成一个<name>.js文件,该文件具有使用预期 JS 类型的功能。

于 2020-02-11T15:17:02.943 回答