小编Mat*_*eus的帖子

如何使用 WebAssembly 构造函数定义 Rust 结构?

我正在尝试将结构从 Rust 导出到 WebAssembly,但出现以下错误:

未捕获(承诺中)类型错误:wasm.Test 不是构造函数

锈:

use wasm_bindgen::prelude::*;

#[wasm_bindgen]
extern "C" {
    #[wasm_bindgen(js_namespace = console)]
    fn log(s: &str);
}

#[wasm_bindgen]
pub struct Test {
    pub x: i32,
}

#[wasm_bindgen]
impl Test {
    #[wasm_bindgen(constructor)]
    pub fn new() -> Self {
        Self {
            x: 0,
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

JS:

import init from './wasm.js'

async function run() {
    const wasm = await init().catch(console.error);
    console.log(wasm);

    let test = new wasm.Test();

    console.log(test);
}

run();
Run Code Online (Sandbox Code Playgroud)

导出结构体的正确方法是什么?

rust webassembly

5
推荐指数
1
解决办法
1092
查看次数

标签 统计

rust ×1

webassembly ×1