Define only a single NonZero type per macro call
Later in this stack, as the nonzero_integers macro is going to be responsible for producing a larger fraction of the API for the NonZero integer types, it will need to receive a number of additional arguments beyond the ones currently seen here. Additional arguments, especially named arguments across multiple lines, will turn out clearer if everything in one macro call is for the same NonZero type. This commit adopts a similar arrangement to what we do for generating the API of the integer primitives (`impl u8` etc), which also generate a single type's API per top-level macro call, rather than generating all 12 impl blocks for the 12 types from one macro call.
This commit is contained in:
parent
56df3bb70d
commit
54cb822563
1 changed files with 39 additions and 6 deletions
|
@ -22,9 +22,10 @@ macro_rules! impl_nonzero_fmt {
|
|||
}
|
||||
}
|
||||
|
||||
macro_rules! nonzero_integers {
|
||||
( $( #[$stability: meta] #[$const_new_unchecked_stability: meta] $Ty: ident($Int: ty); )+ ) => {
|
||||
$(
|
||||
macro_rules! nonzero_integer {
|
||||
(
|
||||
#[$stability:meta] #[$const_new_unchecked_stability:meta] $Ty:ident($Int:ty);
|
||||
) => {
|
||||
/// An integer that is known not to equal zero.
|
||||
///
|
||||
/// This enables some memory layout optimization.
|
||||
|
@ -186,8 +187,7 @@ macro_rules! nonzero_integers {
|
|||
impl_nonzero_fmt! {
|
||||
#[$stability] (Debug, Display, Binary, Octal, LowerHex, UpperHex) for $Ty
|
||||
}
|
||||
)+
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! from_str_radix_nzint_impl {
|
||||
|
@ -1382,17 +1382,50 @@ nonzero_bits! {
|
|||
NonZeroIsize(isize);
|
||||
}
|
||||
|
||||
nonzero_integers! {
|
||||
nonzero_integer! {
|
||||
#[stable(feature = "nonzero", since = "1.28.0")] #[rustc_const_stable(feature = "nonzero", since = "1.28.0")] NonZeroU8(u8);
|
||||
}
|
||||
|
||||
nonzero_integer! {
|
||||
#[stable(feature = "nonzero", since = "1.28.0")] #[rustc_const_stable(feature = "nonzero", since = "1.28.0")] NonZeroU16(u16);
|
||||
}
|
||||
|
||||
nonzero_integer! {
|
||||
#[stable(feature = "nonzero", since = "1.28.0")] #[rustc_const_stable(feature = "nonzero", since = "1.28.0")] NonZeroU32(u32);
|
||||
}
|
||||
|
||||
nonzero_integer! {
|
||||
#[stable(feature = "nonzero", since = "1.28.0")] #[rustc_const_stable(feature = "nonzero", since = "1.28.0")] NonZeroU64(u64);
|
||||
}
|
||||
|
||||
nonzero_integer! {
|
||||
#[stable(feature = "nonzero", since = "1.28.0")] #[rustc_const_stable(feature = "nonzero", since = "1.28.0")] NonZeroU128(u128);
|
||||
}
|
||||
|
||||
nonzero_integer! {
|
||||
#[stable(feature = "nonzero", since = "1.28.0")] #[rustc_const_stable(feature = "nonzero", since = "1.28.0")] NonZeroUsize(usize);
|
||||
}
|
||||
|
||||
nonzero_integer! {
|
||||
#[stable(feature = "signed_nonzero", since = "1.34.0")] #[rustc_const_stable(feature = "signed_nonzero", since = "1.34.0")] NonZeroI8(i8);
|
||||
}
|
||||
|
||||
nonzero_integer! {
|
||||
#[stable(feature = "signed_nonzero", since = "1.34.0")] #[rustc_const_stable(feature = "signed_nonzero", since = "1.34.0")] NonZeroI16(i16);
|
||||
}
|
||||
|
||||
nonzero_integer! {
|
||||
#[stable(feature = "signed_nonzero", since = "1.34.0")] #[rustc_const_stable(feature = "signed_nonzero", since = "1.34.0")] NonZeroI32(i32);
|
||||
}
|
||||
|
||||
nonzero_integer! {
|
||||
#[stable(feature = "signed_nonzero", since = "1.34.0")] #[rustc_const_stable(feature = "signed_nonzero", since = "1.34.0")] NonZeroI64(i64);
|
||||
}
|
||||
|
||||
nonzero_integer! {
|
||||
#[stable(feature = "signed_nonzero", since = "1.34.0")] #[rustc_const_stable(feature = "signed_nonzero", since = "1.34.0")] NonZeroI128(i128);
|
||||
}
|
||||
|
||||
nonzero_integer! {
|
||||
#[stable(feature = "signed_nonzero", since = "1.34.0")] #[rustc_const_stable(feature = "signed_nonzero", since = "1.34.0")] NonZeroIsize(isize);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue