use std::io::Read; fn main() { let mut input = String::new(); std::io::stdin().read_to_string(&mut input).unwrap(); let value: serde_json::Value = serde_json::from_str(&input).unwrap(); let spec: fidc_core::daily_patterns::PatternSpec = serde_json::from_value(value["spec"].clone()).unwrap(); let bars: Vec = serde_json::from_value(value["bars"].clone()).unwrap(); let result = fidc_core::session_events::evaluate( &spec.validate().unwrap(), value["symbol"].as_str().unwrap(), &bars, serde_json::from_value(value["decision_at"].clone()).unwrap(), ); match result { Ok(row) => println!( "{}", serde_json::json!({"contract":fidc_core::session_events::CONTRACT,"row":row,"read_only":true,"source_evidence_verified":false}) ), Err(error) => { eprintln!("{error}"); std::process::exit(1); } } }