main
John Lauer Recognize actual rectangular pad contact in explicit-current branch screening; retain disconnected-net refusal 96ef829
//! Read-only diagnostic for the optional explicit-terminal branch model.
use aiflow_board::Board;
use serde_json::Value;
fn main() {
    let args: Vec<String> = std::env::args().collect();
    assert_eq!(args.len(), 4, "usage: branch_screen BOARD SPEC NET");
    let board = Board::from_text(&args[1], std::fs::read_to_string(&args[1]).unwrap()).unwrap();
    let spec: Value = serde_json::from_str(&std::fs::read_to_string(&args[2]).unwrap()).unwrap();
    match aiflow_analyze::branches::screen(&board, &args[3], &spec["loads"][&args[3]], &spec) {
        Ok(value) => println!("{}", serde_json::to_string_pretty(&value).unwrap()),
        Err(error) => { eprintln!("{error}"); std::process::exit(2); }
    }
}