batch/
batch.rs

1/*
2 * Batch process a text file full of packets, report how many parsed OK.
3 */
4
5extern crate ukhasnet_parser;
6use ukhasnet_parser::{parse};
7use std::io::BufReader;
8use std::io::BufRead;
9use std::fs::File;
10use std::env::args;
11
12fn main() {
13    let f = match File::open(args().nth(1).unwrap()) {
14        Ok(f) => f,
15        Err(_) => panic!()
16    };
17    let r = BufReader::new(f);
18    let mut total = 0;
19    let mut parsed = 0;
20
21    for line in r.lines() {
22        let line = line.unwrap();
23        total += 1;
24        match parse(&line) {
25            Ok(_) => parsed += 1,
26            Err(_) => (),
27        }
28    }
29
30    println!("Parsed {}/{} packets", parsed, total);
31}