use anyhow::anyhow; use std::env::args; use std::fs; use std::fs::File; use std::io::Write; use std::process::exit; use vis::render::svg_renderer::SvgRender; use vis::render::Renderer; fn main() -> anyhow::Result<()> { let args: Vec = args().collect(); if args.len() != 2 { eprintln!("Usage: vis vis-file"); exit(-64); } else { let vis_file = read_file(&args[1])?; let vis = vis::parse::parse_vis(vis_file.as_str())?; // println!("{:?}", vis); let svg_bytes = SvgRender {}.render(vis)?; let mut file = File::create("bank.svg").expect("Unable to create file"); file.write_all(&svg_bytes).expect("Unable to write data"); } Ok(()) } fn read_file(file_name: &str) -> anyhow::Result { fs::read_to_string(file_name).map_err(|e| anyhow!("Cannot read file '{}': {}", file_name, e)) }