diff --git a/crates/fidc-core/examples/signal_book_probe.rs b/crates/fidc-core/examples/signal_book_probe.rs new file mode 100644 index 0000000..422f5d6 --- /dev/null +++ b/crates/fidc-core/examples/signal_book_probe.rs @@ -0,0 +1,13 @@ +use std::io::{self,Read}; + +fn main() -> Result<(),Box> { + let mut input=String::new(); + io::stdin().read_to_string(&mut input)?; + let book:fidc_core::signal_contract::SignalBook=serde_json::from_str(&input)?; + let version=book.version_sha256.clone(); + let snapshots=book.snapshots.len(); + let validated=book.validate().map_err(io::Error::other)?; + println!("{}",serde_json::json!({"ok":true,"versionSha256":version,"snapshots":snapshots, + "symbols":validated.symbols().len(),"observed":validated.require_observed().is_ok()})); + Ok(()) +}