我定义了 3 个结构和两种类型
type OnMoveEvent = fn(Board) -> ();
type OnGameOverEvent = fn(Player) -> ();
#[wasm_bindgen]
pub struct Game {
on_move: OnMoveEvent,
on_game_over: OnGameOverEvent,
board: Board,
}
#[wasm_bindgen]
pub struct Board {/* ... */}
#[wasm_bindgen]
pub struct Player {/* ... */}
所有 3 个结构都是wasm_bindgen
并且类型不能标记为wasm_bindgen
. 但是类型只是接受结构并返回的函数void
当我添加wasm_bindgen
时,Game
impl
我收到以下错误
--> src/game.rs:16:1
|
16 | #[wasm_bindgen]
| ^^^^^^^^^^^^^^^ the trait `wasm_bindgen::convert::traits::FromWasmAbi` is not implemented for `fn(board::Board)`
那是因为new
具有以下签名
pub fn new(on_move: OnMoveEvent, on_game_over: OnGameOverEvent) -> Game
在我看来,转换类型应该很简单,因为它们是接受wasm_bindgen
结构的函数,但事实并非如此
这是一个错误还是我错过了什么?
完整的代码在这里。