pub trait ISaturatingOps<T = Self>where
Self: PartialOrd,{
type Output;
fn saturating_abs(self) -> Self::Output;
fn saturating_add(self, rhs: T) -> Self::Output;
fn saturating_div(self, rhs: T) -> Self::Output;
fn saturating_div_euclid(self, rhs: T) -> Self::Output;
fn saturating_mul(self, rhs: T) -> Self::Output;
fn saturating_neg(self) -> Self::Output;
fn saturating_pow(self, rhs: u32) -> Self::Output;
fn saturating_rem(self, rhs: T) -> Self::Output;
fn saturating_rem_euclid(self, rhs: T) -> Self::Output;
fn saturating_shl(self, rhs: u32) -> Self::Output;
fn saturating_shr(self, rhs: u32) -> Self::Output;
fn saturating_sub(self, rhs: T) -> Self::Output;
}