use new ticker

This commit is contained in:
Robin Appelman 2019-12-22 17:36:27 +01:00
commit dd26cc9bce
4 changed files with 72 additions and 58 deletions

View file

@ -1,14 +1,26 @@
use tf_demo_parser::demo::parser::gamestateanalyser::GameStateAnalyser;
use tf_demo_parser::{Demo, DemoParser, ParseError};
use wasm_bindgen::__rt::std::time::Instant;
use wasm_bindgen::prelude::*;
use web_sys::console;
use tf_demo_parser::{DemoParser, Demo};
#[wasm_bindgen]
pub fn parse_demo(buffer: &[u8]) {
pub fn parse_demo(buffer: &[u8]) -> Result<(), JsValue> {
let buffer = buffer.to_vec();
parse_demo_inner(buffer).map_err(|e| e.to_string().into())
}
pub fn parse_demo_inner(buffer: Vec<u8>) -> Result<(), ParseError> {
console::log_1(&JsValue::from_str(&format!("len: {}", buffer.len())));
let demo = Demo::new(buffer);
let (header, _) = DemoParser::parse_all(demo.get_stream()).unwrap();
let parser = DemoParser::new_with_analyser(demo.get_stream(), GameStateAnalyser::default());
let (header, mut ticker) = parser.ticker()?;
while ticker.tick()? {
// noop
}
console::log_1(&JsValue::from_str(&format!("{:?}", header)));
Ok(())
}
// This is like the `main` function, except for JavaScript.
@ -19,7 +31,6 @@ pub fn main_js() -> Result<(), JsValue> {
#[cfg(debug_assertions)]
console_error_panic_hook::set_once();
// Your code goes here!
console::log_1(&JsValue::from_str("Hello world!"));