lox/crates/lox-wasm/src/lib.rs

37 lines
932 B
Rust
Raw Normal View History

use wasm_bindgen::prelude::*;
use lox::OPENINV_LENGTH;
2022-11-10 11:04:20 -05:00
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()
}