pub mod bench;
mod launcher;
mod session;
pub mod table;
mod threading;
pub use bench::{
BenchContext, BenchmarkRunner, ConcurrentBenchContext, ConcurrentBenchControl,
ConcurrentBenchmarkGroup, ConcurrentWorker, ConcurrentWorkerResult, CounterValue, NoContext,
};
pub use launcher::{
BenchmarkMainOptions, benchmark_filter_from_args, benchmark_filter_from_env, run_benchmark_main,
};
pub use table::{Alignment, BorderColor, TableFormatter};
#[cfg(target_os = "linux")]
pub use bench::PerfCounters;
pub use session::{
BenchmarkKind, BenchmarkReport, BenchmarkResult, BenchmarkStats, ComparisonPolicy,
WorkerCounterSummary, WorkerSummary,
};
pub use std::hint::black_box;
pub use std::time::Instant;
#[cfg(target_os = "linux")]
pub use perf_event;
#[macro_export]
macro_rules! benchmark_main {
(|$runner:ident| $body:block) => {
fn main() {
let _ =
$crate::run_benchmark_main($crate::BenchmarkMainOptions::default(), |$runner| {
$body
});
}
};
($options:expr, |$runner:ident| $body:block) => {
fn main() {
let _ = $crate::run_benchmark_main($options, |$runner| $body);
}
};
}