summaryrefslogtreecommitdiffstats
path: root/benches/composite.rs
blob: e67645783bac26adf36fe680534f8b488ecbd268 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
mod shared;

use {
    broot::{
        command::CommandParts,
        pattern::*,
    },
    glassbench::*,
};

// this file benches composite patterns on file names so don't
// use file content sub patterns here
static PATTERNS: &[&str] = &[
    "réveil",
    "r&!e",
    "(!e&!b)|c",
];

fn bench_score_of_composite(gb: &mut Bench) {
    let search_modes = SearchModeMap::default();
    for pattern in PATTERNS {
        let name = format!("Composite({:?})::score_of", &pattern);
        gb.task(name, |b| {
            let parts = CommandParts::from(pattern.to_string());
            let cp = Pattern::new(&parts.pattern, &search_modes).unwrap();
            b.iter(|| {
                for name in shared::NAMES {
                    pretend_used(cp.score_of_string(name));
                }
            });
        });
    }
}

glassbench!(
    "Composite Patterns",
    bench_score_of_composite,
);