Rollup merge of #53363 - llogiq:num-individual-nonzero-docs, r=steveklabnik

add individual docs to `core::num::NonZero*`
This commit is contained in:
kennytm 2018-08-21 11:08:28 +08:00
commit 7896ac3e08
No known key found for this signature in database
GPG Key ID: FEF6C8051D0E013C

View File

@ -34,22 +34,32 @@ macro_rules! impl_nonzero_fmt {
} }
} }
macro_rules! doc_comment {
($x:expr, $($tt:tt)*) => {
#[doc = $x]
$($tt)*
};
}
macro_rules! nonzero_integers { macro_rules! nonzero_integers {
( $( $Ty: ident($Int: ty); )+ ) => { ( $( $Ty: ident($Int: ty); )+ ) => {
$( $(
/// An integer that is known not to equal zero. doc_comment! {
/// concat!("An integer that is known not to equal zero.
/// This enables some memory layout optimization.
/// For example, `Option<NonZeroU32>` is the same size as `u32`: This enables some memory layout optimization.
/// For example, `Option<", stringify!($Ty), ">` is the same size as `", stringify!($Int), "`:
/// ```rust
/// use std::mem::size_of; ```rust
/// assert_eq!(size_of::<Option<std::num::NonZeroU32>>(), size_of::<u32>()); use std::mem::size_of;
/// ``` assert_eq!(size_of::<Option<std::num::", stringify!($Ty), ">>(), size_of::<", stringify!($Int),
">());
```"),
#[stable(feature = "nonzero", since = "1.28.0")] #[stable(feature = "nonzero", since = "1.28.0")]
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[repr(transparent)] #[repr(transparent)]
pub struct $Ty(NonZero<$Int>); pub struct $Ty(NonZero<$Int>);
}
impl $Ty { impl $Ty {
/// Create a non-zero without checking the value. /// Create a non-zero without checking the value.
@ -176,13 +186,6 @@ pub mod dec2flt;
pub mod bignum; pub mod bignum;
pub mod diy_float; pub mod diy_float;
macro_rules! doc_comment {
($x:expr, $($tt:tt)*) => {
#[doc = $x]
$($tt)*
};
}
mod wrapping; mod wrapping;
// `Int` + `SignedInt` implemented for signed integers // `Int` + `SignedInt` implemented for signed integers