27 lines
992 B
Rust
27 lines
992 B
Rust
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<fidc_core::session_events::MinuteBar> =
|
|
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);
|
|
}
|
|
}
|
|
}
|