use super::Observer;
use core::num::NonZeroUsize;
pub trait Based {
type Base: ?Sized;
fn base(&self) -> &Self::Base;
fn base_mut(&mut self) -> &mut Self::Base;
}
#[inline]
pub fn modulus<O: Observer + ?Sized>(this: &O) -> NonZeroUsize {
unsafe { NonZeroUsize::new_unchecked(2 * this.capacity().get()) }
}