diff options
Diffstat (limited to 'crates/rebel-parse/benches/recipe.rs')
-rw-r--r-- | crates/rebel-parse/benches/recipe.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/crates/rebel-parse/benches/recipe.rs b/crates/rebel-parse/benches/recipe.rs new file mode 100644 index 0000000..4cff857 --- /dev/null +++ b/crates/rebel-parse/benches/recipe.rs @@ -0,0 +1,21 @@ +use rebel_parse::{ast, token::TokenStream}; + +fn main() { + divan::main(); +} + +const RECIPE: &str = include_str!("../../../examples/recipes/gmp/build.recipe"); + +#[divan::bench] +fn tokenize() -> TokenStream<'static> { + rebel_parse::tokenize::token_stream(divan::black_box(RECIPE)).unwrap() +} + +#[divan::bench] +fn parse(bencher: divan::Bencher) { + let tokens = tokenize(); + + bencher.bench(|| -> ast::Recipe<'static> { + rebel_parse::recipe::recipe(divan::black_box(&tokens)).unwrap() + }); +} |