cur*_*nii 8 vector rust typed-arrays wasm-bindgen
我有一个Vec我想返回并使用 wasm-bindgen 转换为类型化数组,即将 a 转换Vec<u32>为Uint32Array. 根据我的研究,wasm-bindgen 现在无法自动处理这些转换(就像它所做的那样String),而您必须使用js-sys板条箱。然而,我还没有找到如何使用这个板条箱的明确示例。如果可以提供如何使用它的清晰简单的示例,我们将不胜感激。
为了完整起见,如果答案能够解释如何公开返回 a 的函数Vec<u32>以及结构成员,即如何将这些定义转换为可用的内容,那就太好了:
#[wasm_bindgen]
pub fn my_func() -> Vec<u32> {
inner_func() // returns Vec<u32>
}
#[wasm_bindgen]
pub struct my_struct {
#[wasm_bindgen(readonly)]
pub my_vec: Vec<u32>,
}
Run Code Online (Sandbox Code Playgroud)
您可以将 a 转换Vec<u32>为js_sys::Uint32Array。所以你的my_func看起来像:
#[wasm_bindgen]
pub fn my_func() -> js_sys::Uint32Array {
let rust_array = inner_func();
return js_sys::Uint32Array::from(&rust_array[..]);
}
Run Code Online (Sandbox Code Playgroud)
并且可以通过创建 getter 来公开该结构:
#[wasm_bindgen]
pub struct my_struct {
// Note: not pub
my_vec: Vec<u32>,
}
#[wasm_bindgen]
impl my_struct {
#[wasm_bindgen(getter)]
pub fn my_vec(&self) -> js_sys::Uint32Array {
return js_sys::Uint32Array::from(&self.my_vec[..]);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6607 次 |
| 最近记录: |