defuse_num_utils/
div.rs

1pub trait CheckedDiv<RHS = Self>: Sized {
2    fn checked_div(self, rhs: RHS) -> Option<Self>;
3
4    fn checked_div_ceil(self, rhs: RHS) -> Option<Self>;
5}
6
7macro_rules! impl_checked_div {
8    ($($t:ty),+) => {$(
9        impl CheckedDiv for $t {
10            #[inline]
11            fn checked_div(self, rhs: Self) -> Option<Self> {
12                self.checked_div(rhs)
13            }
14
15            #[inline]
16            fn checked_div_ceil(self, rhs: Self) -> Option<Self> {
17                if rhs == 0 {
18                    return None;
19                }
20                Some(self.div_ceil(rhs))
21            }
22        }
23    )+};
24}
25impl_checked_div!(u8, u16, u32, u64, u128);
26//  #![feature(int_roundings)]
27// impl_checked_div!(i8, i16, i32, i64, i128);