use serde_wasm_bindgen instead
This commit is contained in:
parent
97192d31be
commit
dfa49c1c01
1 changed files with 17 additions and 6 deletions
23
src/lib.rs
23
src/lib.rs
|
|
@ -3,6 +3,7 @@ extern crate argus;
|
|||
extern crate serde_json;
|
||||
extern crate js_sys;
|
||||
extern crate serde;
|
||||
extern crate serde_wasm_bindgen;
|
||||
|
||||
use wasm_bindgen::prelude::*;
|
||||
|
||||
|
|
@ -12,6 +13,7 @@ use argus::signals::interpolation;
|
|||
use std::collections::HashMap;
|
||||
use std::vec;
|
||||
use serde::{Serialize, Deserialize};
|
||||
use serde_wasm_bindgen::{from_value, to_value};
|
||||
use std::time::Duration;
|
||||
|
||||
// #[wasm_bindgen]
|
||||
|
|
@ -76,21 +78,30 @@ impl<'a> Trace for TraceMap<'a> {
|
|||
// }
|
||||
// }
|
||||
|
||||
#[wasm_bindgen(getter_with_clone)]
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct StateBuddyTraceEntry {
|
||||
simtime: f64,
|
||||
inputEvent: String,
|
||||
outputEvents: Vec<String>,
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct StateBuddyTrace {
|
||||
entries: Vec<StateBuddyTraceEntry>,
|
||||
}
|
||||
|
||||
// #[wasm_bindgen]
|
||||
// impl StateBuddyTrace {
|
||||
// #[wasm_bindgen(constructor)]
|
||||
// pub fn new(entries: &Vec<StateBuddyTraceEntry>) {
|
||||
// StateBuddyTrace{entries}
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn eval_boolean(s: &str, trace: &StateBuddyTrace) -> StateBuddyEvalResult {
|
||||
pub fn eval_boolean(s: &str, js_trace: JsValue) -> JsValue {
|
||||
let trace: StateBuddyTrace = from_value(js_trace).expect("fuuuuck");
|
||||
let mut traceMap = HashMap::<&str, Signal<bool>>::new();
|
||||
for entry in &trace.entries {
|
||||
let value = traceMap.entry(entry.inputEvent.as_str()).or_insert_with(|| Signal::<bool>::Sampled {
|
||||
|
|
@ -119,16 +130,16 @@ pub fn eval_boolean(s: &str, trace: &StateBuddyTrace) -> StateBuddyEvalResult {
|
|||
satisfied: *satisfied,
|
||||
});
|
||||
});
|
||||
StateBuddyEvalResult { entries: result }
|
||||
to_value(&StateBuddyEvalResult { entries: result }).expect("fuuuck")
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct StateBuddyEvalResultEntry {
|
||||
timestamp: f64,
|
||||
satisfied: bool,
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct StateBuddyEvalResult {
|
||||
entries: Vec<StateBuddyEvalResultEntry>,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue