@@ -4,8 +4,8 @@ use crate::{Cmov, CmovEq, Condition};
44use core:: {
55 cmp,
66 num:: {
7- NonZeroI8 , NonZeroI16 , NonZeroI32 , NonZeroI64 , NonZeroI128 , NonZeroU8 , NonZeroU16 ,
8- NonZeroU32 , NonZeroU64 , NonZeroU128 ,
7+ NonZeroI8 , NonZeroI16 , NonZeroI32 , NonZeroI64 , NonZeroI128 , NonZeroIsize , NonZeroU8 ,
8+ NonZeroU16 , NonZeroU32 , NonZeroU64 , NonZeroU128 , NonZeroUsize ,
99 } ,
1010 ops:: { BitOrAssign , Shl } ,
1111 ptr, slice,
@@ -134,7 +134,7 @@ macro_rules! impl_cmov_with_loop {
134134}
135135
136136// These types are large enough we don't need to use anything more complex than a simple loop
137- impl_cmov_with_loop ! ( u32 , u64 , u128 ) ;
137+ impl_cmov_with_loop ! ( u32 , u64 , u128 , usize ) ;
138138
139139/// Ensure the two provided types have the same size and alignment.
140140macro_rules! assert_size_and_alignment_eq {
@@ -183,16 +183,19 @@ impl_cmov_with_cast!(
183183 i32 => u32 ,
184184 i64 => u64 ,
185185 i128 => u128 ,
186+ isize => usize ,
186187 NonZeroI8 => i8 ,
187188 NonZeroI16 => i16 ,
188189 NonZeroI32 => i32 ,
189190 NonZeroI64 => i64 ,
190191 NonZeroI128 => i128 ,
192+ NonZeroIsize => isize ,
191193 NonZeroU8 => u8 ,
192194 NonZeroU16 => u16 ,
193195 NonZeroU32 => u32 ,
194196 NonZeroU64 => u64 ,
195197 NonZeroU128 => u128 ,
198+ NonZeroUsize => usize ,
196199 cmp:: Ordering => i8 // #[repr(i8)]
197200) ;
198201
@@ -249,7 +252,7 @@ macro_rules! impl_cmoveq_with_loop {
249252}
250253
251254// TODO(tarcieri): investigate word-coalescing impls
252- impl_cmoveq_with_loop ! ( u16 , u32 , u64 , u128 ) ;
255+ impl_cmoveq_with_loop ! ( u16 , u32 , u64 , u128 , usize ) ;
253256
254257/// Implement [`CmovEq`] traits by casting to a different type that impls the traits.
255258macro_rules! impl_cmoveq_with_cast {
@@ -280,16 +283,19 @@ impl_cmoveq_with_cast!(
280283 i32 => u32 ,
281284 i64 => u64 ,
282285 i128 => u128 ,
286+ isize => usize ,
283287 NonZeroI8 => i8 ,
284288 NonZeroI16 => i16 ,
285289 NonZeroI32 => i32 ,
286290 NonZeroI64 => i64 ,
287291 NonZeroI128 => i128 ,
292+ NonZeroIsize => isize ,
288293 NonZeroU8 => u8 ,
289294 NonZeroU16 => u16 ,
290295 NonZeroU32 => u32 ,
291296 NonZeroU64 => u64 ,
292297 NonZeroU128 => u128 ,
298+ NonZeroUsize => usize ,
293299 cmp:: Ordering => i8 // #[repr(i8)]
294300) ;
295301
0 commit comments