use criterion::{Criterion, criterion_group, criterion_main};
use netflow_parser::NetflowParser;
use std::hint::black_box;
fn criterion_benchmark(c: &mut Criterion) {
c.bench_function("netflow_v9 bench", |b| {
let v9_template_packet = [
0, 9, 0, 2, 0, 0, 9, 9, 0, 1, 2, 3, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 16, 1, 2, 0,
2, 0, 1, 0, 4, 0, 8, 0, 4, 1, 2, 0, 12, 9, 2, 3, 4, 9, 9, 9, 8,
];
let v9_data_packet: [u8; 32] = [
0, 9, 0, 1, 0, 0, 9, 9, 0, 1, 2, 3, 0, 0, 0, 1, 0, 0, 0, 1,
1, 2, 0, 12, 9, 2, 3, 4, 9, 9, 9, 8,
];
let mut parser = NetflowParser::default();
let _ = parser.parse_bytes(&v9_template_packet);
b.iter(|| {
let _ = parser.parse_bytes(black_box(&v9_data_packet));
})
});
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);