diff --git a/pkg/argus_wasm_bg.wasm b/pkg/argus_wasm_bg.wasm index ba162db..ec3309f 100644 Binary files a/pkg/argus_wasm_bg.wasm and b/pkg/argus_wasm_bg.wasm differ diff --git a/src/lib.rs b/src/lib.rs index cb574c7..0907bbd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -19,7 +19,7 @@ use std::time::Duration; use web_sys::console; struct TraceMap<'a> { - traces: HashMap<&'a str, Signal>, + traces: HashMap<&'a str, Signal>, } impl<'a> Trace for TraceMap<'a> { @@ -40,7 +40,7 @@ impl<'a> Trace for TraceMap<'a> { #[derive(Serialize, Deserialize)] pub struct StateBuddyTraceEntry { simtime: f64, - state: HashMap, + state: HashMap, // inputEvent: String, // outputEvents: Vec, } @@ -57,14 +57,14 @@ pub fn eval_boolean(s: &str, js_trace: JsValue) -> JsValue { Ok(trace) => trace, Err(e) => return JsValue::from_str(("failed to parse JSON: ".to_owned() + &e.to_string()).as_str()), }; - let mut traceMap = HashMap::<&str, Signal>::new(); + let mut traceMap = HashMap::<&str, Signal>::new(); for entry in &trace.entries { for (prop, val) in &entry.state { - let signal = traceMap.entry(prop.as_str()).or_insert_with(|| Signal::::Sampled { + let signal: &mut Signal = traceMap.entry(prop.as_str()).or_insert_with(|| Signal::::Sampled { values: vec![], time_points: vec![], }); - if let Signal::::Sampled { values, time_points } = signal { + if let Signal::::Sampled { values, time_points } = signal { values.push(*val); time_points.push(Duration::from_secs(entry.simtime as u64)); } @@ -76,12 +76,12 @@ pub fn eval_boolean(s: &str, js_trace: JsValue) -> JsValue { let m = TraceMap{traces: traceMap}; for name in m.signal_names() { console::debug_2(&JsValue::from_str("signal name:"), &JsValue::from_str(name)); - let signal: &Signal = m.get(name).expect("bla"); - if let Signal::::Sampled { values, time_points } = signal { + let signal: &Signal = m.get(name).expect("bla"); + if let Signal::::Sampled { values, time_points } = signal { for i in 0..(values.len()) { console::debug_2( &JsValue::from_f64(time_points[i].as_millis() as f64), - &JsValue::from_f64(values[i])); + &JsValue::from_bool(values[i])); } } }