use crate::{
counter::{KnownCounterKind, MaxCountUInt},
time::FineDuration,
};
mod sample;
pub(crate) use sample::*;
pub(crate) struct Stats {
pub sample_count: u32,
pub iter_count: u64,
pub time: StatsSet<FineDuration>,
pub counts: [Option<StatsSet<MaxCountUInt>>; KnownCounterKind::COUNT],
}
impl Stats {
pub fn get_counts(&self, counter_kind: KnownCounterKind) -> Option<&StatsSet<MaxCountUInt>> {
self.counts[counter_kind as usize].as_ref()
}
}
#[derive(Debug)]
pub(crate) struct StatsSet<T> {
pub fastest: T,
pub slowest: T,
pub median: T,
pub mean: T,
}