use anyhow::Context;
use clap::Parser;
use tinymist_project::{CompileOnceArgs, WorldProvider};
#[derive(Debug, Clone, Parser, Default)]
pub struct BenchArgs {
#[clap(flatten)]
pub compile: CompileOnceArgs,
#[clap(long, default_value = "target/crityp")]
pub bench_output: String,
}
fn main() -> anyhow::Result<()> {
let args = BenchArgs::parse();
let universe = args.compile.resolve()?;
let mut world = universe.snapshot();
let out_dir = std::env::current_dir()
.context("cannot get current working directory")?
.join(args.bench_output);
let mut crit = criterion::Criterion::default().output_directory(&out_dir);
crityp::bench(&mut crit, &mut world)?;
crit.final_summary();
Ok(())
}