Skip to content

Commit 80e035c

Browse files
committed
implement IsZero for Saturating and Wrapping
1 parent 9ba169a commit 80e035c

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

library/alloc/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@
134134
#![feature(ptr_metadata)]
135135
#![feature(ptr_sub_ptr)]
136136
#![feature(receiver_trait)]
137+
#![feature(saturating_int_impl)]
137138
#![feature(set_ptr_value)]
138139
#![feature(slice_from_ptr_range)]
139140
#![feature(slice_group_by)]

library/alloc/src/vec/is_zero.rs

+16
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use core::num::{Saturating, Wrapping};
2+
13
use crate::boxed::Box;
24

35
#[rustc_specialization_trait]
@@ -144,3 +146,17 @@ impl_is_zero_option_of_nonzero!(
144146
NonZeroUsize,
145147
NonZeroIsize,
146148
);
149+
150+
unsafe impl<T: IsZero> IsZero for Wrapping<T> {
151+
#[inline]
152+
fn is_zero(&self) -> bool {
153+
self.0.is_zero()
154+
}
155+
}
156+
157+
unsafe impl<T: IsZero> IsZero for Saturating<T> {
158+
#[inline]
159+
fn is_zero(&self) -> bool {
160+
self.0.is_zero()
161+
}
162+
}

0 commit comments

Comments
 (0)