spefparse 0.2.0

SPEF parasitics parser
Documentation
use spefparse::SPEF;
use std::env;
use std::fs;

fn main() {
    clilog::init_stderr_color_debug();
    let args: Vec<String> = env::args().collect();
    assert!(args.len() == 2,
            "Usage: {} <spef_path>", args[0]);

    let spef = fs::read_to_string(&args[1])
        .expect("Error reading spef source file");

    let spef = match SPEF::parse_str(&spef) {
        Ok(spef) => spef,
        Err(e) => panic!("{}", e)
    };

    clilog::info!("SPEF file {}", args[1]);
    clilog::info!("*DESIGN {:?}, *VENDOR {:?}",
                  spef.header.design, spef.header.vendor);
    clilog::info!("# Ports = {}", spef.top_ports.len());
    clilog::info!("# Nets  = {}", spef.nets.len());
    clilog::info!(
        "# Net Points  = {}",
        spef.nets.iter()
            .map(|n| n.caps.len())
            .sum::<usize>());
}