pub trait SaturatingMul<Rhs = Self> {
type Output;
fn saturating_mul(self, rhs: Rhs) -> Self::Output;
}
macro_rules! impl_saturating_mul {
($($ty:ty),+ $(,)?) => {
$(impl SaturatingMul for $ty {
type Output = $ty;
#[inline]
fn saturating_mul(self, rhs: Self) -> Self::Output {
<$ty>::saturating_mul(self, rhs)
}
})+
};
}
impl_saturating_mul!(i8, i16, i32, i64, i128, isize);
impl_saturating_mul!(u8, u16, u32, u64, u128, usize);