相关疑难解决方法(0)

将JavaScript字符串传递给编译为WebAssembly的Rust函数

我有这个简单的Rust函数:

#[no_mangle]
pub fn compute(operator: &str, n1: i32, n2: i32) -> i32 {
    match operator {
        "SUM" => n1 + n2,
        "DIFF" => n1 - n2,
        "MULT" => n1 * n2,
        "DIV" => n1 / n2,
        _ => 0
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在成功地将其编译为WebAssembly,但是没有设法将operator参数从JS 传递给Rust.

调用Rust函数的JS行如下所示:

instance.exports.compute(operator, n1, n2);
Run Code Online (Sandbox Code Playgroud)

operator是JS Stringn1,n2是JS Number秒.

n1并且n2正确传递并且可以在编译函数内部读取,所以我猜问题是我如何传递字符串.我想它是作为从JS到WebAssembly的指针传递,但无法找到有关其工作原理的证据或材料.

我没有使用Emscripten并希望将其保持独立(编译目标wasm32-unknown-unknown),但我看到它们将其编译的函数包装起来Module.cwrap,也许这可能会有所帮助?

javascript string rust webassembly

7
推荐指数
1
解决办法
1541
查看次数

标签 统计

javascript ×1

rust ×1

string ×1

webassembly ×1