将此库视为依赖项:
[dependencies]
rustengine = "1.0.60"
Run Code Online (Sandbox Code Playgroud)
针对它编译这个小程序:
[dependencies]
rustengine = "1.0.60"
Run Code Online (Sandbox Code Playgroud)
这将实例化库的主要对象,调用昂贵的计算,然后打印它的统计信息。它输出:
Finished dev [unoptimized + debuginfo] target(s) in 0.02s
Running `target\debug\rustengine.exe`
node(s) 320006 , time 0.47 sec(s) , nps 677.4099 kNode(s)/sec
Run Code Online (Sandbox Code Playgroud)
现在在官方 Rust WASM 示例中使用相同的依赖项
https://developer.mozilla.org/en-US/docs/WebAssembly/Rust_to_wasm
并修改greet函数以针对相同的库依赖项执行相同的两个命令:
use rustenginelib::uci::*;
fn main() {
let mut uci = create_default_uci();
uci.process_uci_command("perft 4".to_string());
}
Run Code Online (Sandbox Code Playgroud)
编译时不会出现警告或错误,npm 包已构建,在 localhost:8080 上提供,WASM 可执行文件运行并失败并出现错误
Uncaught (in promise) RuntimeError: unreachable
at wasm-function[117]:0x1459f
at wasm-function[188]:0x1636d
at wasm-function[232]:0x16792
at wasm-function[9]:0x6692
at wasm-function[52]:0xf068
at Module.greet (webpack:///./node_modules/@easychessanimations/chessengine-wasm/chessengine_wasm_bg.js?:87:68)
at eval (webpack:///./index.js?:3:6)
Run Code Online (Sandbox Code Playgroud)
一旦注释掉昂贵的计算(但不是库对象的初始化),该示例就可以工作:
Finished …Run Code Online (Sandbox Code Playgroud)