From e40765d90f13713c8e821d07773b7a314e61eced Mon Sep 17 00:00:00 2001 From: not-matthias Date: Tue, 4 Mar 2025 14:09:49 +0100 Subject: [PATCH] feat: add consts benchmark and missing items in __private Signed-off-by: not-matthias --- crates/divan_compat/benches/basic_example.rs | 32 ++++++++++++++++++++ crates/divan_compat/src/compat/entry/mod.rs | 2 +- crates/divan_compat/src/compat/mod.rs | 6 ++-- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/crates/divan_compat/benches/basic_example.rs b/crates/divan_compat/benches/basic_example.rs index a93925af..07e6043a 100644 --- a/crates/divan_compat/benches/basic_example.rs +++ b/crates/divan_compat/benches/basic_example.rs @@ -32,6 +32,38 @@ fn mut_borrow(bencher: Bencher) { }); } +// Examples taken from the docs: https://docs.rs/divan/latest/divan/attr.bench.html#consts +mod const_bench { + const LEN: usize = 42; + + const fn len() -> usize { + 4 + } + + #[codspeed_divan_compat::bench(consts = [1000, LEN, len()])] + fn init_array() -> [i32; N] { + let mut result = [0; N]; + + #[allow(clippy::needless_range_loop)] + for i in 0..N { + result[i] = divan::black_box(i as i32); + } + + result + } + + const SIZES: &[usize] = &[1, 10, LEN, len()]; + #[codspeed_divan_compat::bench(consts = SIZES)] + fn bench_array1() -> [i32; N] { + init_array::() + } + + #[codspeed_divan_compat::bench(consts = SIZES)] + fn bench_array2() -> [i32; N] { + init_array::() + } +} + fn main() { codspeed_divan_compat::main(); } diff --git a/crates/divan_compat/src/compat/entry/mod.rs b/crates/divan_compat/src/compat/entry/mod.rs index 2a4273ba..c18c97ed 100644 --- a/crates/divan_compat/src/compat/entry/mod.rs +++ b/crates/divan_compat/src/compat/entry/mod.rs @@ -16,7 +16,7 @@ use super::{ BenchArgsRunner, }; -pub use generic::{EntryType, GenericBenchEntry}; +pub use generic::{EntryConst, EntryType, GenericBenchEntry}; /// Benchmark entries generated by `#[divan::bench]`. /// diff --git a/crates/divan_compat/src/compat/mod.rs b/crates/divan_compat/src/compat/mod.rs index a7bd782b..c4a03dd0 100644 --- a/crates/divan_compat/src/compat/mod.rs +++ b/crates/divan_compat/src/compat/mod.rs @@ -4,12 +4,12 @@ pub mod __private { pub use super::{ bench::{BenchArgs, BenchOptions}, entry::{ - BenchEntry, BenchEntryRunner, EntryList, EntryLocation, EntryMeta, EntryType, - GenericBenchEntry, GroupEntry, BENCH_ENTRIES, GROUP_ENTRIES, + BenchEntry, BenchEntryRunner, EntryConst, EntryList, EntryLocation, EntryMeta, + EntryType, GenericBenchEntry, GroupEntry, BENCH_ENTRIES, GROUP_ENTRIES, }, }; - pub use divan::__private::{Arg, ToStringHelper}; + pub use divan::__private::{shrink_array, Arg, ToStringHelper}; } mod bench;