aboutsummaryrefslogtreecommitdiff
path: root/benches/benchmarks/parser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'benches/benchmarks/parser.rs')
-rw-r--r--benches/benchmarks/parser.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/benches/benchmarks/parser.rs b/benches/benchmarks/parser.rs
new file mode 100644
index 0000000..2aa63aa
--- /dev/null
+++ b/benches/benchmarks/parser.rs
@@ -0,0 +1,20 @@
+use criterion::{black_box, criterion_group, Criterion};
+
+use anes::parser::Parser;
+
+pub fn parser(c: &mut Criterion) {
+ const XTERM_MOUSE: &str = "\x1B[<28;20;10;m";
+
+ let mut parser = Parser::default();
+
+ c.bench_function("advance and consume", |b| {
+ let input = XTERM_MOUSE.as_bytes();
+
+ b.iter(|| {
+ parser.advance(black_box(input), black_box(true));
+ while let Some(_) = parser.next() {}
+ })
+ });
+}
+
+criterion_group!(benches, parser);