summaryrefslogtreecommitdiffstats
path: root/crates/rebel-parse/benches/recipe.rs
blob: 4cff857525b649df8e319a08c15efb22d4c16e31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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()
	});
}