use std::sync::{
Arc,
atomic::{AtomicUsize, Ordering},
};
mod default;
#[derive(Debug, Clone)]
pub struct SharedLen(Arc<AtomicUsize>);
impl SharedLen {
pub fn new(val: usize) -> Self {
Self(Arc::new(AtomicUsize::new(val)))
}
#[inline(always)]
pub fn get(&self) -> usize {
self.0.load(Ordering::Acquire)
}
#[inline]
pub fn set(&self, val: usize) {
self.0.store(val, Ordering::Release);
}
}