num_traits/ops/
saturating.rs1pub trait Saturating {
3 fn saturating_add(self, v: Self) -> Self;
6
7 fn saturating_sub(self, v: Self) -> Self;
10}
11
12macro_rules! saturating_impl {
13 ($trait_name:ident for $($t:ty)*) => {$(
14 impl $trait_name for $t {
15 #[inline]
16 fn saturating_add(self, v: Self) -> Self {
17 Self::saturating_add(self, v)
18 }
19
20 #[inline]
21 fn saturating_sub(self, v: Self) -> Self {
22 Self::saturating_sub(self, v)
23 }
24 }
25 )*}
26}
27
28saturating_impl!(Saturating for isize usize i8 u8 i16 u16 i32 u32 i64 u64);
29#[cfg(has_i128)]
30saturating_impl!(Saturating for i128 u128);