#[derive(Default, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(C, align(8))]
struct OnlyEverIncreasesMonotonicallyOffset(u64);
impl Add<Size> for OnlyEverIncreasesMonotonicallyOffset
{
type Output = Self;
#[inline(always)]
fn add(self, rhs: Size) -> Self::Output
{
OnlyEverIncreasesMonotonicallyOffset(self.0 + rhs.0)
}
}
impl Into<usize> for OnlyEverIncreasesMonotonicallyOffset
{
#[inline(always)]
fn into(self) -> usize
{
self.0 as usize
}
}
impl Sub<Self> for OnlyEverIncreasesMonotonicallyOffset
{
type Output = Size;
#[inline(always)]
fn sub(self, rhs: Self) -> Self::Output
{
Size(self.0 - rhs.0)
}
}
impl Rem<Size> for OnlyEverIncreasesMonotonicallyOffset
{
type Output = Size;
#[inline(always)]
fn rem(self, rhs: Size) -> Self::Output
{
Size(self.0 % rhs.0)
}
}