File: benchmark.rs

package info (click to toggle)
rust-mime-guess 2.0.5-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 264 kB
  • sloc: makefile: 2
file content (31 lines) | stat: -rw-r--r-- 810 bytes parent folder | download | duplicates (4)
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
#[macro_use]
extern crate criterion;
extern crate mime_guess;

use self::criterion::Criterion;

use mime_guess::from_ext;

include!("../src/mime_types.rs");

/// WARNING: this may take a while!
fn bench_mime_str(c: &mut Criterion) {
    c.bench_function("from_ext", |b| {
        for (mime_ext, _) in MIME_TYPES {
            b.iter(|| from_ext(mime_ext).first_raw());
        }
    });
}

fn bench_mime_str_uppercase(c: &mut Criterion) {
    c.bench_function("from_ext uppercased", |b| {
        let uppercased = MIME_TYPES.into_iter().map(|(s, _)| s.to_uppercase());

        for mime_ext in uppercased {
            b.iter(|| from_ext(&mime_ext).first_raw());
        }
    });
}

criterion_group!(benches, bench_mime_str, bench_mime_str_uppercase);
criterion_main!(benches);