diff --git a/src/libcore/num/mod.rs b/src/libcore/num/mod.rs index df90d81c57abc..48a3db4258f2b 100644 --- a/src/libcore/num/mod.rs +++ b/src/libcore/num/mod.rs @@ -1217,6 +1217,14 @@ impl Saturating for T /// Performs addition that returns `None` instead of wrapping around on overflow. pub trait CheckedAdd: Add { /// Adds two numbers, checking for overflow. If overflow happens, `None` is returned. + /// + /// # Example + /// + /// ```rust + /// use std::num::CheckedAdd; + /// assert_eq!(5u16.checked_add(&65530), Some(65535)); + /// assert_eq!(6u16.checked_add(&65530), None); + /// ``` fn checked_add(&self, v: &Self) -> Option; } @@ -1270,6 +1278,14 @@ checked_impl!(CheckedAdd, checked_add, i64, intrinsics::i64_add_with_overflow) /// Performs subtraction that returns `None` instead of wrapping around on underflow. pub trait CheckedSub: Sub { /// Subtracts two numbers, checking for underflow. If underflow happens, `None` is returned. + /// + /// # Example + /// + /// ```rust + /// use std::num::CheckedSub; + /// assert_eq!((-127i8).checked_sub(&1), Some(-128)); + /// assert_eq!((-128i8).checked_sub(&1), None); + /// ``` fn checked_sub(&self, v: &Self) -> Option; } @@ -1298,6 +1314,14 @@ checked_impl!(CheckedSub, checked_sub, i64, intrinsics::i64_sub_with_overflow) pub trait CheckedMul: Mul { /// Multiplies two numbers, checking for underflow or overflow. If underflow or overflow /// happens, `None` is returned. + /// + /// # Example + /// + /// ```rust + /// use std::num::CheckedMul; + /// assert_eq!(5u8.checked_mul(&51), Some(255)); + /// assert_eq!(5u8.checked_mul(&52), None); + /// ``` fn checked_mul(&self, v: &Self) -> Option; } @@ -1325,6 +1349,14 @@ checked_impl!(CheckedMul, checked_mul, i64, intrinsics::i64_mul_with_overflow) pub trait CheckedDiv: Div { /// Divides two numbers, checking for underflow or overflow. If underflow or overflow happens, /// `None` is returned. + /// + /// # Example + /// + /// ```rust + /// use std::num::CheckedDiv; + /// assert_eq!((-127i8).checked_div(&-1), Some(127)); + /// assert_eq!((-128i8).checked_div(&-1), None); + /// ``` fn checked_div(&self, v: &Self) -> Option; }