use std::sync::atomic::{AtomicUsize, Ordering};
use crate::over_release::OverRelease;
pub struct GlobalCounter {
pub(crate) allocated: AtomicUsize,
pub(crate) ceiling: usize,
pub(crate) over_release: OverRelease,
}
impl GlobalCounter {
pub(crate) fn new(ceiling: usize) -> Self {
Self {
allocated: AtomicUsize::new(0),
ceiling,
over_release: OverRelease::new(),
}
}
}
impl std::fmt::Debug for GlobalCounter {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("GlobalCounter")
.field("allocated", &self.allocated.load(Ordering::Relaxed))
.field("ceiling", &self.ceiling)
.field("over_release", &self.over_release)
.finish()
}
}