benchmark/
benchmark.rs

1extern crate parse_zoneinfo;
2
3use parse_zoneinfo::line::{Line, LineParser};
4use parse_zoneinfo::table::TableBuilder;
5
6fn main() {
7    let asia = std::fs::read_to_string("examples/asia").unwrap();
8
9    for _ in 0..100 {
10        let parser = LineParser::default();
11        let mut builder = TableBuilder::new();
12        for line in asia.lines() {
13            match parser.parse_str(line).unwrap() {
14                Line::Zone(zone) => builder.add_zone_line(zone).unwrap(),
15                Line::Continuation(cont) => builder.add_continuation_line(cont).unwrap(),
16                Line::Rule(rule) => builder.add_rule_line(rule).unwrap(),
17                Line::Link(link) => builder.add_link_line(link).unwrap(),
18                Line::Space => {}
19            }
20        }
21        let _table = builder.build();
22    }
23}