@@ -1217,6 +1217,14 @@ impl<T: CheckedAdd + CheckedSub + Zero + PartialOrd + Bounded> Saturating for T
1217
1217
/// Performs addition that returns `None` instead of wrapping around on overflow.
1218
1218
pub trait CheckedAdd : Add < Self , Self > {
1219
1219
/// Adds two numbers, checking for overflow. If overflow happens, `None` is returned.
1220
+ ///
1221
+ /// # Example
1222
+ ///
1223
+ /// ```rust
1224
+ /// use std::num::CheckedAdd;
1225
+ /// assert_eq!(5u16.checked_add(&65530), Some(65535));
1226
+ /// assert_eq!(6u16.checked_add(&65530), None);
1227
+ /// ```
1220
1228
fn checked_add ( & self , v : & Self ) -> Option < Self > ;
1221
1229
}
1222
1230
@@ -1270,6 +1278,14 @@ checked_impl!(CheckedAdd, checked_add, i64, intrinsics::i64_add_with_overflow)
1270
1278
/// Performs subtraction that returns `None` instead of wrapping around on underflow.
1271
1279
pub trait CheckedSub : Sub < Self , Self > {
1272
1280
/// Subtracts two numbers, checking for underflow. If underflow happens, `None` is returned.
1281
+ ///
1282
+ /// # Example
1283
+ ///
1284
+ /// ```rust
1285
+ /// use std::num::CheckedSub;
1286
+ /// assert_eq!((-127i8).checked_sub(&1), Some(-128));
1287
+ /// assert_eq!((-128i8).checked_sub(&1), None);
1288
+ /// ```
1273
1289
fn checked_sub ( & self , v : & Self ) -> Option < Self > ;
1274
1290
}
1275
1291
@@ -1298,6 +1314,14 @@ checked_impl!(CheckedSub, checked_sub, i64, intrinsics::i64_sub_with_overflow)
1298
1314
pub trait CheckedMul : Mul < Self , Self > {
1299
1315
/// Multiplies two numbers, checking for underflow or overflow. If underflow or overflow
1300
1316
/// happens, `None` is returned.
1317
+ ///
1318
+ /// # Example
1319
+ ///
1320
+ /// ```rust
1321
+ /// use std::num::CheckedMul;
1322
+ /// assert_eq!(5u8.checked_mul(&51), Some(255));
1323
+ /// assert_eq!(5u8.checked_mul(&52), None);
1324
+ /// ```
1301
1325
fn checked_mul ( & self , v : & Self ) -> Option < Self > ;
1302
1326
}
1303
1327
@@ -1325,6 +1349,14 @@ checked_impl!(CheckedMul, checked_mul, i64, intrinsics::i64_mul_with_overflow)
1325
1349
pub trait CheckedDiv : Div < Self , Self > {
1326
1350
/// Divides two numbers, checking for underflow or overflow. If underflow or overflow happens,
1327
1351
/// `None` is returned.
1352
+ ///
1353
+ /// # Example
1354
+ ///
1355
+ /// ```rust
1356
+ /// use std::num::CheckedDiv;
1357
+ /// assert_eq!((-127i8).checked_div(&-1), Some(127));
1358
+ /// assert_eq!((-128i8).checked_div(&-1), None);
1359
+ /// ```
1328
1360
fn checked_div ( & self , v : & Self ) -> Option < Self > ;
1329
1361
}
1330
1362
0 commit comments