tf-demo-parser 0.6.4

parser for tf2 demo files
Documentation
use main_error::MainError;
use prettyplease::unparse;
use std::env;
use std::fs;
use syn::{parse2, File};
use tf_demo_parser::codegen::gameevent::generate_game_events;
use tf_demo_parser::codegen::propnames::generate_prop_names;
use tf_demo_parser::Demo;

fn main() -> std::result::Result<(), MainError> {
    better_panic::install();

    let args: Vec<_> = env::args().collect();
    if args.len() < 2 {
        println!("1 argument required");
        return Ok(());
    }
    let path = args[1].clone();
    let file = fs::read(path).expect("Unable to read file");
    let demo = Demo::new(&file);
    let tokens = match args.get(2).map(|s| s.as_str()) {
        None | Some("events") => generate_game_events(demo),
        Some("props") => generate_prop_names(demo),
        _ => panic!("unsupported"),
    };
    let file = parse2::<File>(tokens)?;
    let code = unparse(&file);
    println!("{}", code);
    Ok(())
}