mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-07 12:33:14 +00:00
Implement BITS
constant for non-zero integers
This commit is contained in:
parent
f8a29bd95e
commit
1d13de6867
@ -1090,3 +1090,41 @@ nonzero_min_max_signed! {
|
||||
NonZeroI128(i128);
|
||||
NonZeroIsize(isize);
|
||||
}
|
||||
|
||||
macro_rules! nonzero_bits {
|
||||
( $( $Ty: ident($Int: ty); )+ ) => {
|
||||
$(
|
||||
impl $Ty {
|
||||
/// The size of this non-zero integer type in bits.
|
||||
///
|
||||
#[doc = concat!("This value is equal to [`", stringify!($Int), "::BITS`].")]
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(nonzero_bits)]
|
||||
#[doc = concat!("# use std::num::", stringify!($Ty), ";")]
|
||||
///
|
||||
#[doc = concat!("assert_eq!(", stringify!($Ty), "::BITS, ", stringify!($Int), "::BITS);")]
|
||||
/// ```
|
||||
#[unstable(feature = "nonzero_bits", issue = "94881")]
|
||||
pub const BITS: u32 = <$Int>::BITS;
|
||||
}
|
||||
)+
|
||||
}
|
||||
}
|
||||
|
||||
nonzero_bits! {
|
||||
NonZeroU8(u8);
|
||||
NonZeroI8(i8);
|
||||
NonZeroU16(u16);
|
||||
NonZeroI16(i16);
|
||||
NonZeroU32(u32);
|
||||
NonZeroI32(i32);
|
||||
NonZeroU64(u64);
|
||||
NonZeroI64(i64);
|
||||
NonZeroU128(u128);
|
||||
NonZeroI128(i128);
|
||||
NonZeroUsize(usize);
|
||||
NonZeroIsize(isize);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user