1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
pub trait CheckedAddInto {
    type Output;
    fn checked_add_into(&self, other: &Self) -> Option<Self::Output>;
}

pub trait CheckedMulInto {
    type Output;
    fn checked_mul_into(&self, other: &Self) -> Option<Self::Output>;
}

pub trait CheckedAddInner: Sized {
    type Inner;
    fn checked_add_inner(&self, other: &Self::Inner) -> Option<Self>;
}

pub trait CheckedMulInner: Sized {
    type Inner;
    fn checked_mul_inner(&self, other: &Self::Inner) -> Option<Self>;
}

pub trait CheckedDivInner: Sized {
    type Inner;
    fn checked_div_inner(&self, other: &Self::Inner) -> Option<Self>;
}