diff --git a/Cargo.toml b/Cargo.toml index f7a6715..3d005fd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,5 +17,8 @@ readme = "README.md" criterion = "0.4.0" [[bench]] -name = "basic" +name = "tokenise" +harness = false +[[bench]] +name = "format" harness = false diff --git a/benches/format.rs b/benches/format.rs new file mode 100644 index 0000000..8d7122f --- /dev/null +++ b/benches/format.rs @@ -0,0 +1,25 @@ +use std::collections::BTreeMap; +use criterion::{criterion_group, criterion_main, Criterion}; +use irctokens::Line; + + +fn criterion_benchmark(c: &mut Criterion) { + let line = Line { + tags: Some(BTreeMap::from([ + ("tag1".to_string(), Some("tag1value".to_string())), + ("tag2".to_string(), None), + ("tag3".to_string(), Some("a;a".to_string())), + ])), + source: Some(b"source".to_vec()), + command: "COMMAND".to_string(), + args: Vec::from([ + b"arg1".to_vec(), + b"arg2".to_vec(), + b"arg3 with space".to_vec(), + ]), + }; + c.bench_function("basic", |b| b.iter(|| line.format())); +} + +criterion_group!(benches, criterion_benchmark); +criterion_main!(benches); diff --git a/benches/basic.rs b/benches/tokenise.rs similarity index 66% rename from benches/basic.rs rename to benches/tokenise.rs index 29a5007..a590d7f 100644 --- a/benches/basic.rs +++ b/benches/tokenise.rs @@ -1,8 +1,8 @@ use criterion::{criterion_group, criterion_main, Criterion}; -use irctokens::tokenise; +use irctokens::Line; fn basic() { - tokenise(b"@tag1=tag1value;tag2=;tag3 :source COMMAND arg1 arg2 :arg3 with space").unwrap(); + Line::tokenise(b"@tag1=tag1value;tag2=;tag3 :source COMMAND arg1 arg2 :arg3 with space").unwrap(); } fn criterion_benchmark(c: &mut Criterion) {