use wasm_bindgen::prelude::*; use lox::OPENINV_LENGTH; use lox::proto::open_invite; use serde_json; use std::array::TryFromSliceError; use std::panic; #[wasm_bindgen] extern { #[wasm_bindgen(js_namespace = console)] pub fn log(s: &str); } #[wasm_bindgen] pub fn set_panic_hook() { panic::set_hook(Box::new(console_error_panic_hook::hook)); } #[wasm_bindgen] pub fn open_invite(invite: &[u8]) { log(&format!("Using invite: {:?}", invite)); match validate(invite) { Ok(token) => { let (request, _state) = open_invite::request(&token); let serialized_request = serde_json::to_string(&request).unwrap(); log(&format!("Formatted open invite request: {}", serialized_request)); }, Err(e) => { log(&format!("{:?}", e)); }, } } fn validate(invite: &[u8]) -> Result<[u8; OPENINV_LENGTH], TryFromSliceError> { invite.try_into() }