1
1
use core:: ops:: { Add , Div , Mul , Rem , Shl , Shr , Sub } ;
2
2
3
- /// Performs addition that returns `None` instead of wrapping around on
4
- /// overflow.
3
+ /// Performs addition, returning `None` if overflow occurred.
5
4
pub trait CheckedAdd : Sized + Add < Self , Output = Self > {
6
5
/// Adds two numbers, checking for overflow. If overflow happens, `None` is
7
6
/// returned.
@@ -33,7 +32,7 @@ checked_impl!(CheckedAdd, checked_add, i64);
33
32
checked_impl ! ( CheckedAdd , checked_add, isize ) ;
34
33
checked_impl ! ( CheckedAdd , checked_add, i128 ) ;
35
34
36
- /// Performs subtraction that returns `None` instead of wrapping around on underflow.
35
+ /// Performs subtraction, returning `None` if underflow occurred .
37
36
pub trait CheckedSub : Sized + Sub < Self , Output = Self > {
38
37
/// Subtracts two numbers, checking for underflow. If underflow happens,
39
38
/// `None` is returned.
@@ -54,8 +53,8 @@ checked_impl!(CheckedSub, checked_sub, i64);
54
53
checked_impl ! ( CheckedSub , checked_sub, isize ) ;
55
54
checked_impl ! ( CheckedSub , checked_sub, i128 ) ;
56
55
57
- /// Performs multiplication that returns `None` instead of wrapping around on underflow or
58
- /// overflow .
56
+ /// Performs multiplication, returning `None` if underflow or overflow
57
+ /// occurred .
59
58
pub trait CheckedMul : Sized + Mul < Self , Output = Self > {
60
59
/// Multiplies two numbers, checking for underflow or overflow. If underflow
61
60
/// or overflow happens, `None` is returned.
@@ -76,8 +75,8 @@ checked_impl!(CheckedMul, checked_mul, i64);
76
75
checked_impl ! ( CheckedMul , checked_mul, isize ) ;
77
76
checked_impl ! ( CheckedMul , checked_mul, i128 ) ;
78
77
79
- /// Performs division that returns `None` instead of panicking on division by zero and instead of
80
- /// wrapping around on underflow and overflow.
78
+ /// Performs division, returning `None` on division by zero or if underflow or
79
+ /// overflow occurred .
81
80
pub trait CheckedDiv : Sized + Div < Self , Output = Self > {
82
81
/// Divides two numbers, checking for underflow, overflow and division by
83
82
/// zero. If any of that happens, `None` is returned.
@@ -98,8 +97,8 @@ checked_impl!(CheckedDiv, checked_div, i64);
98
97
checked_impl ! ( CheckedDiv , checked_div, isize ) ;
99
98
checked_impl ! ( CheckedDiv , checked_div, i128 ) ;
100
99
101
- /// Performs an integral remainder that returns `None` instead of panicking on division by zero and
102
- /// instead of wrapping around on underflow and overflow.
100
+ /// Performs integral remainder, returning `None` on division by zero or if
101
+ /// underflow or overflow occurred .
103
102
pub trait CheckedRem : Sized + Rem < Self , Output = Self > {
104
103
/// Finds the remainder of dividing two numbers, checking for underflow, overflow and division
105
104
/// by zero. If any of that happens, `None` is returned.
@@ -148,7 +147,7 @@ macro_rules! checked_impl_unary {
148
147
} ;
149
148
}
150
149
151
- /// Performs negation that returns `None` if the result can't be represented.
150
+ /// Performs negation, returning `None` if the result can't be represented.
152
151
pub trait CheckedNeg : Sized {
153
152
/// Negates a number, returning `None` for results that can't be represented, like signed `MIN`
154
153
/// values that can't be positive, or non-zero unsigned values that can't be negative.
@@ -183,8 +182,8 @@ checked_impl_unary!(CheckedNeg, checked_neg, i64);
183
182
checked_impl_unary ! ( CheckedNeg , checked_neg, isize ) ;
184
183
checked_impl_unary ! ( CheckedNeg , checked_neg, i128 ) ;
185
184
186
- /// Performs a left shift that returns `None` on shifts larger than
187
- /// or equal to the type width.
185
+ /// Performs shift left, returning `None` on shifts larger than or equal to
186
+ /// the type width.
188
187
pub trait CheckedShl : Sized + Shl < u32 , Output = Self > {
189
188
/// Checked shift left. Computes `self << rhs`, returning `None`
190
189
/// if `rhs` is larger than or equal to the number of bits in `self`.
@@ -227,8 +226,8 @@ checked_shift_impl!(CheckedShl, checked_shl, i64);
227
226
checked_shift_impl ! ( CheckedShl , checked_shl, isize ) ;
228
227
checked_shift_impl ! ( CheckedShl , checked_shl, i128 ) ;
229
228
230
- /// Performs a right shift that returns `None` on shifts larger than
231
- /// or equal to the type width.
229
+ /// Performs shift right, returning `None` on shifts larger than or equal to
230
+ /// the type width.
232
231
pub trait CheckedShr : Sized + Shr < u32 , Output = Self > {
233
232
/// Checked shift right. Computes `self >> rhs`, returning `None`
234
233
/// if `rhs` is larger than or equal to the number of bits in `self`.
0 commit comments