use super::log_scale::LogScale;
#[derive(Debug, Clone, Copy)]
pub struct BucketRef<'a, const WIDTH: usize> {
log_scale: &'a LogScale<WIDTH>,
index: usize,
count: u64,
}
impl<'a, const WIDTH: usize> BucketRef<'a, WIDTH> {
pub(crate) fn new(log_scale: &'a LogScale<WIDTH>, index: usize, count: u64) -> Self {
Self {
log_scale,
index,
count,
}
}
pub fn left(&self) -> u64 {
self.log_scale.bucket_left(self.index)
}
pub fn right(&self) -> u64 {
self.log_scale.bucket_right(self.index)
}
pub fn count(&self) -> u64 {
self.count
}
}