diff options
Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 42 |
1 files changed, 34 insertions, 8 deletions
@@ -1,5 +1,5 @@ -use std::{cell::RefCell, rc::Rc}; use std::sync::Mutex; +use std::{cell::RefCell, rc::Rc}; use log::{Level, debug, info}; use wasm_bindgen::prelude::*; @@ -25,27 +25,44 @@ fn document() -> web_sys::Document { } fn canvas() -> JSResult<web_sys::HtmlCanvasElement> { - let x = document().query_selector("section.watch canvas")?.ok_or("no canvas")?; + let x = document() + .query_selector("section.watch canvas")? + .ok_or("no canvas")?; Ok(x.dyn_into()?) } fn fps() -> JSResult<web_sys::HtmlElement> { - let x = document().query_selector("section.watch .fps")?.ok_or("no fps counter")?; + let x = document() + .query_selector("section.watch .fps")? + .ok_or("no fps counter")?; Ok(x.dyn_into()?) } fn go() -> JSResult<web_sys::HtmlElement> { - let x = document().query_selector("section.watch button")?.ok_or("no go button")?; + let x = document() + .query_selector("section.watch button")? + .ok_or("no go button")?; Ok(x.dyn_into()?) } fn iters() -> JSResult<web_sys::HtmlInputElement> { - let x = document().query_selector("section.bench input")?.ok_or("no go button")?; + let x = document() + .query_selector("section.bench input")? + .ok_or("no iters input")?; Ok(x.dyn_into()?) } fn bench() -> JSResult<web_sys::HtmlElement> { - let x = document().query_selector("section.bench button")?.ok_or("no go button")?; + let x = document() + .query_selector("section.bench button")? + .ok_or("no bench button")?; + Ok(x.dyn_into()?) +} + +fn results() -> JSResult<web_sys::HtmlElement> { + let x = document() + .query_selector("section.bench .results")? + .ok_or("no results element")?; Ok(x.dyn_into()?) } @@ -91,7 +108,10 @@ pub fn init() -> JSResult<()> { let bench_handler: HandlerClosure = Closure::new(move |e| { debug!("bench clicked {:?}", e); - let iters = iters()?.value().parse::<u32>().map_err(|_| "iters isn't int")?; + let iters = iters()? + .value() + .parse::<u32>() + .map_err(|_| "iters isn't int")?; let mut s = s1.borrow_mut(); let perf = window().performance().unwrap(); @@ -103,7 +123,13 @@ pub fn init() -> JSResult<()> { let delta = end - start; let iters_per_ms = Into::<f64>::into(iters) / delta; - info!("bench done. {iters} iters in {delta} ms ({iters_per_ms} iters per ms)"); + results()?.set_text_content(Some( + format!( + "{} iters in {:0.2} ms ({:0.2} iters per ms)", + iters, delta, iters_per_ms + ) + .as_str(), + )); Ok(()) }); bench()?.set_onclick(Some(bench_handler.as_ref().unchecked_ref())); |
