1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use super::Mul;

/// Overflowing multiplication
pub trait MulOverflowing: Mul {
	/// Performs overflowing multiplication
	///
	/// # Examples
	///
	/// TODO
	fn mul_overflowing(self, rhs: Self) -> (Self, bool);
}

macro_rules! impl_num_trait_mul_overflowing {
	{ $($num:ident)* } => {
		$(
			impl MulOverflowing for $num {
				#[inline]
				fn mul_overflowing(self, rhs: $num) -> ($num, bool) {
					$num::overflowing_mul(self, rhs)
				}
			}
		)*
	}
}

impl_num_trait_mul_overflowing! {
	u8 u16 u32 u64 u128 usize
	i8 i16 i32 i64 i128 isize
}