42 lines
1.1 KiB
Rust
42 lines
1.1 KiB
Rust
use wasm_bindgen::prelude::*;
|
|
use bitsy_parser::game::Game;
|
|
|
|
// Called when the wasm module is instantiated
|
|
#[wasm_bindgen(start)]
|
|
pub fn main() -> Result<(), JsValue> {
|
|
// Use `web_sys`'s global `window` function to get a handle on the global
|
|
// window object.
|
|
let window = web_sys::window().expect("no global `window` exists");
|
|
let document = window.document().expect("should have a document on window");
|
|
let body = document.body().expect("document should have a body");
|
|
|
|
// Manufacture the element we're gonna append
|
|
let val = document.create_element("p")?;
|
|
val.set_inner_html("Hello from Rust!");
|
|
|
|
body.append_child(&val)?;
|
|
|
|
Ok(())
|
|
}
|
|
|
|
#[wasm_bindgen]
|
|
pub fn merge(a: String, b: String) -> String {
|
|
let main = Game::from(a);
|
|
let additional = Game::from(b);
|
|
|
|
if main.is_err() {
|
|
return "Couldn't parse main game.".to_string();
|
|
}
|
|
|
|
if additional.is_err() {
|
|
return "Couldn't parse additional game.".to_string();
|
|
}
|
|
|
|
let mut main = main.unwrap();
|
|
let additional = additional.unwrap();
|
|
|
|
main.merge(additional);
|
|
main.dedupe_tiles();
|
|
main.to_string()
|
|
}
|