Wasm-bindgen:u8 数组作为输入和输出,生成 javascript 具有不同的函数签名
Wasm-bindgen: arrays of u8 as inputs and outputs, generated javascript has different function signatures
我编写了一个函数,它以一个 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
.
将其构建到wasm+javascript中
作为输出,我得到以下打字稿函数定义:
export function ab(a: number, b: number): number;
export function __wbindgen_malloc(a: number): number;
ab() 的两个输入数字是多少?这些功能应该如何使用?
此外,是否有更好的方法直接从 Rust 分配给 wasm 内存,以便 wasm-pack
ed 函数定义与 rust 函数定义相匹配?
wasm_bindgen
生成两个JS文件。您正在查看 <name>_bg.js
文件,该文件将 "raw" 绑定公开到 webassembly 模块,其中参数是指针。它还应该生成一个 <name>.js
文件,其中包含使用预期 JS 类型的函数。
我编写了一个函数,它以一个 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-pack
ed 函数定义与 rust 函数定义相匹配?
wasm_bindgen
生成两个JS文件。您正在查看 <name>_bg.js
文件,该文件将 "raw" 绑定公开到 webassembly 模块,其中参数是指针。它还应该生成一个 <name>.js
文件,其中包含使用预期 JS 类型的函数。