Stabilize num::NonZeroU*
Tracking issue: https://github.com/rust-lang/rust/issues/49137
This commit is contained in:
parent
c536639c1e
commit
89d9ca9b50
11 changed files with 8 additions and 21 deletions
|
@ -102,7 +102,6 @@
|
||||||
#![feature(lang_items)]
|
#![feature(lang_items)]
|
||||||
#![feature(libc)]
|
#![feature(libc)]
|
||||||
#![feature(needs_allocator)]
|
#![feature(needs_allocator)]
|
||||||
#![feature(nonzero)]
|
|
||||||
#![feature(optin_builtin_traits)]
|
#![feature(optin_builtin_traits)]
|
||||||
#![feature(pattern)]
|
#![feature(pattern)]
|
||||||
#![feature(pin)]
|
#![feature(pin)]
|
||||||
|
|
|
@ -21,9 +21,9 @@ use ops;
|
||||||
use str::FromStr;
|
use str::FromStr;
|
||||||
|
|
||||||
macro_rules! impl_nonzero_fmt {
|
macro_rules! impl_nonzero_fmt {
|
||||||
( #[$stability: meta] ( $( $Trait: ident ),+ ) for $Ty: ident ) => {
|
( ( $( $Trait: ident ),+ ) for $Ty: ident ) => {
|
||||||
$(
|
$(
|
||||||
#[$stability]
|
#[stable(feature = "nonzero", since = "1.28.0")]
|
||||||
impl fmt::$Trait for $Ty {
|
impl fmt::$Trait for $Ty {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
@ -35,7 +35,7 @@ macro_rules! impl_nonzero_fmt {
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! nonzero_integers {
|
macro_rules! nonzero_integers {
|
||||||
( #[$stability: meta] $( $Ty: ident($Int: ty); )+ ) => {
|
( $( $Ty: ident($Int: ty); )+ ) => {
|
||||||
$(
|
$(
|
||||||
/// An integer that is known not to equal zero.
|
/// An integer that is known not to equal zero.
|
||||||
///
|
///
|
||||||
|
@ -46,7 +46,7 @@ macro_rules! nonzero_integers {
|
||||||
/// use std::mem::size_of;
|
/// use std::mem::size_of;
|
||||||
/// assert_eq!(size_of::<Option<std::num::NonZeroU32>>(), size_of::<u32>());
|
/// assert_eq!(size_of::<Option<std::num::NonZeroU32>>(), size_of::<u32>());
|
||||||
/// ```
|
/// ```
|
||||||
#[$stability]
|
#[stable(feature = "nonzero", since = "1.28.0")]
|
||||||
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
|
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
|
||||||
pub struct $Ty(NonZero<$Int>);
|
pub struct $Ty(NonZero<$Int>);
|
||||||
|
|
||||||
|
@ -56,14 +56,14 @@ macro_rules! nonzero_integers {
|
||||||
/// # Safety
|
/// # Safety
|
||||||
///
|
///
|
||||||
/// The value must not be zero.
|
/// The value must not be zero.
|
||||||
#[$stability]
|
#[stable(feature = "nonzero", since = "1.28.0")]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const unsafe fn new_unchecked(n: $Int) -> Self {
|
pub const unsafe fn new_unchecked(n: $Int) -> Self {
|
||||||
$Ty(NonZero(n))
|
$Ty(NonZero(n))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Create a non-zero if the given value is not zero.
|
/// Create a non-zero if the given value is not zero.
|
||||||
#[$stability]
|
#[stable(feature = "nonzero", since = "1.28.0")]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn new(n: $Int) -> Option<Self> {
|
pub fn new(n: $Int) -> Option<Self> {
|
||||||
if n != 0 {
|
if n != 0 {
|
||||||
|
@ -74,7 +74,7 @@ macro_rules! nonzero_integers {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the value as a primitive type.
|
/// Returns the value as a primitive type.
|
||||||
#[$stability]
|
#[stable(feature = "nonzero", since = "1.28.0")]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn get(self) -> $Int {
|
pub fn get(self) -> $Int {
|
||||||
self.0 .0
|
self.0 .0
|
||||||
|
@ -83,7 +83,6 @@ macro_rules! nonzero_integers {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl_nonzero_fmt! {
|
impl_nonzero_fmt! {
|
||||||
#[$stability]
|
|
||||||
(Debug, Display, Binary, Octal, LowerHex, UpperHex) for $Ty
|
(Debug, Display, Binary, Octal, LowerHex, UpperHex) for $Ty
|
||||||
}
|
}
|
||||||
)+
|
)+
|
||||||
|
@ -91,7 +90,6 @@ macro_rules! nonzero_integers {
|
||||||
}
|
}
|
||||||
|
|
||||||
nonzero_integers! {
|
nonzero_integers! {
|
||||||
#[unstable(feature = "nonzero", issue = "49137")]
|
|
||||||
NonZeroU8(u8);
|
NonZeroU8(u8);
|
||||||
NonZeroU16(u16);
|
NonZeroU16(u16);
|
||||||
NonZeroU32(u32);
|
NonZeroU32(u32);
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
#![feature(iterator_step_by)]
|
#![feature(iterator_step_by)]
|
||||||
#![feature(iterator_flatten)]
|
#![feature(iterator_flatten)]
|
||||||
#![feature(iterator_repeat_with)]
|
#![feature(iterator_repeat_with)]
|
||||||
#![feature(nonzero)]
|
|
||||||
#![feature(pattern)]
|
#![feature(pattern)]
|
||||||
#![feature(range_is_empty)]
|
#![feature(range_is_empty)]
|
||||||
#![feature(raw)]
|
#![feature(raw)]
|
||||||
|
|
|
@ -56,7 +56,6 @@
|
||||||
#![feature(never_type)]
|
#![feature(never_type)]
|
||||||
#![feature(exhaustive_patterns)]
|
#![feature(exhaustive_patterns)]
|
||||||
#![feature(non_exhaustive)]
|
#![feature(non_exhaustive)]
|
||||||
#![feature(nonzero)]
|
|
||||||
#![feature(proc_macro_internals)]
|
#![feature(proc_macro_internals)]
|
||||||
#![feature(quote)]
|
#![feature(quote)]
|
||||||
#![feature(optin_builtin_traits)]
|
#![feature(optin_builtin_traits)]
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
html_root_url = "https://doc.rust-lang.org/nightly/")]
|
html_root_url = "https://doc.rust-lang.org/nightly/")]
|
||||||
|
|
||||||
#![feature(collections_range)]
|
#![feature(collections_range)]
|
||||||
#![feature(nonzero)]
|
|
||||||
#![feature(unboxed_closures)]
|
#![feature(unboxed_closures)]
|
||||||
#![feature(fn_traits)]
|
#![feature(fn_traits)]
|
||||||
#![feature(unsize)]
|
#![feature(unsize)]
|
||||||
|
|
|
@ -30,7 +30,6 @@ Rust MIR: a lowered representation of Rust. Also: an experiment!
|
||||||
#![feature(exhaustive_patterns)]
|
#![feature(exhaustive_patterns)]
|
||||||
#![feature(range_contains)]
|
#![feature(range_contains)]
|
||||||
#![feature(rustc_diagnostic_macros)]
|
#![feature(rustc_diagnostic_macros)]
|
||||||
#![feature(nonzero)]
|
|
||||||
#![feature(inclusive_range_methods)]
|
#![feature(inclusive_range_methods)]
|
||||||
#![feature(crate_visibility_modifier)]
|
#![feature(crate_visibility_modifier)]
|
||||||
#![feature(never_type)]
|
#![feature(never_type)]
|
||||||
|
|
|
@ -277,7 +277,6 @@
|
||||||
#![feature(needs_panic_runtime)]
|
#![feature(needs_panic_runtime)]
|
||||||
#![feature(never_type)]
|
#![feature(never_type)]
|
||||||
#![feature(exhaustive_patterns)]
|
#![feature(exhaustive_patterns)]
|
||||||
#![feature(nonzero)]
|
|
||||||
#![feature(num_bits_bytes)]
|
#![feature(num_bits_bytes)]
|
||||||
#![feature(old_wrapping)]
|
#![feature(old_wrapping)]
|
||||||
#![feature(on_unimplemented)]
|
#![feature(on_unimplemented)]
|
||||||
|
|
|
@ -21,8 +21,7 @@ pub use core::num::{FpCategory, ParseIntError, ParseFloatError, TryFromIntError}
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub use core::num::Wrapping;
|
pub use core::num::Wrapping;
|
||||||
|
|
||||||
#[unstable(feature = "nonzero", issue = "49137")]
|
#[stable(feature = "nonzero", since = "1.28.0")]
|
||||||
#[allow(deprecated)]
|
|
||||||
pub use core::num::{NonZeroU8, NonZeroU16, NonZeroU32, NonZeroU64, NonZeroU128, NonZeroUsize};
|
pub use core::num::{NonZeroU8, NonZeroU16, NonZeroU32, NonZeroU64, NonZeroU128, NonZeroUsize};
|
||||||
|
|
||||||
#[cfg(test)] use fmt;
|
#[cfg(test)] use fmt;
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
|
|
||||||
// https://github.com/rust-lang/rust/issues/41898
|
// https://github.com/rust-lang/rust/issues/41898
|
||||||
|
|
||||||
#![feature(nonzero)]
|
|
||||||
use std::num::NonZeroU64;
|
use std::num::NonZeroU64;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
#![feature(nonzero, core)]
|
|
||||||
|
|
||||||
use std::mem::size_of;
|
use std::mem::size_of;
|
||||||
use std::num::NonZeroUsize;
|
use std::num::NonZeroUsize;
|
||||||
use std::ptr::NonNull;
|
use std::ptr::NonNull;
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
// padding and overall computed sizes can be quite different.
|
// padding and overall computed sizes can be quite different.
|
||||||
|
|
||||||
#![feature(start)]
|
#![feature(start)]
|
||||||
#![feature(nonzero)]
|
|
||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
|
|
||||||
use std::num::NonZeroU32;
|
use std::num::NonZeroU32;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue