Skip to content

Commit

Permalink
Rollup merge of #85679 - hch12907:master, r=Mark-Simulacrum
Browse files Browse the repository at this point in the history
Remove num_as_ne_bytes feature

From the discussion in #76976, it is determined that eventual results of the safe transmute work as a more general mechanism will let these conversions happen in safe code without needing specialized methods.

Merging this PR closes #76976 and resolves #64464. Several T-libs members have raised their opinion that it doesn't pull its weight as a standalone method, and so we should not track it as a specific thing to add.
  • Loading branch information
Dylan-DPC committed May 26, 2021
2 parents 3c2a709 + 0baf898 commit f3b10dd
Show file tree
Hide file tree
Showing 4 changed files with 0 additions and 118 deletions.
29 changes: 0 additions & 29 deletions library/core/src/num/f32.rs
Original file line number Diff line number Diff line change
Expand Up @@ -854,35 +854,6 @@ impl f32 {
self.to_bits().to_ne_bytes()
}

/// Return the memory representation of this floating point number as a byte array in
/// native byte order.
///
/// [`to_ne_bytes`] should be preferred over this whenever possible.
///
/// [`to_ne_bytes`]: f32::to_ne_bytes
///
/// # Examples
///
/// ```
/// #![feature(num_as_ne_bytes)]
/// let num = 12.5f32;
/// let bytes = num.as_ne_bytes();
/// assert_eq!(
/// bytes,
/// if cfg!(target_endian = "big") {
/// &[0x41, 0x48, 0x00, 0x00]
/// } else {
/// &[0x00, 0x00, 0x48, 0x41]
/// }
/// );
/// ```
#[unstable(feature = "num_as_ne_bytes", issue = "76976")]
#[inline]
pub fn as_ne_bytes(&self) -> &[u8; 4] {
// SAFETY: `f32` is a plain old datatype so we can always transmute to it
unsafe { &*(self as *const Self as *const _) }
}

/// Create a floating point value from its representation as a byte array in big endian.
///
/// # Examples
Expand Down
29 changes: 0 additions & 29 deletions library/core/src/num/f64.rs
Original file line number Diff line number Diff line change
Expand Up @@ -868,35 +868,6 @@ impl f64 {
self.to_bits().to_ne_bytes()
}

/// Return the memory representation of this floating point number as a byte array in
/// native byte order.
///
/// [`to_ne_bytes`] should be preferred over this whenever possible.
///
/// [`to_ne_bytes`]: f64::to_ne_bytes
///
/// # Examples
///
/// ```
/// #![feature(num_as_ne_bytes)]
/// let num = 12.5f64;
/// let bytes = num.as_ne_bytes();
/// assert_eq!(
/// bytes,
/// if cfg!(target_endian = "big") {
/// &[0x40, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
/// } else {
/// &[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x40]
/// }
/// );
/// ```
#[unstable(feature = "num_as_ne_bytes", issue = "76976")]
#[inline]
pub fn as_ne_bytes(&self) -> &[u8; 8] {
// SAFETY: `f64` is a plain old datatype so we can always transmute to it
unsafe { &*(self as *const Self as *const _) }
}

/// Create a floating point value from its representation as a byte array in big endian.
///
/// # Examples
Expand Down
30 changes: 0 additions & 30 deletions library/core/src/num/int_macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1842,36 +1842,6 @@ macro_rules! int_impl {
unsafe { mem::transmute(self) }
}

/// Return the memory representation of this integer as a byte array in
/// native byte order.
///
/// [`to_ne_bytes`] should be preferred over this whenever possible.
///
/// [`to_ne_bytes`]: Self::to_ne_bytes
///
/// # Examples
///
/// ```
/// #![feature(num_as_ne_bytes)]
#[doc = concat!("let num = ", $swap_op, stringify!($SelfT), ";")]
/// let bytes = num.as_ne_bytes();
/// assert_eq!(
/// bytes,
/// if cfg!(target_endian = "big") {
#[doc = concat!(" &", $be_bytes)]
/// } else {
#[doc = concat!(" &", $le_bytes)]
/// }
/// );
/// ```
#[unstable(feature = "num_as_ne_bytes", issue = "76976")]
#[inline]
pub fn as_ne_bytes(&self) -> &[u8; mem::size_of::<Self>()] {
// SAFETY: integers are plain old datatypes so we can always transmute them to
// arrays of bytes
unsafe { &*(self as *const Self as *const _) }
}

/// Create an integer value from its representation as a byte array in
/// big endian.
///
Expand Down
30 changes: 0 additions & 30 deletions library/core/src/num/uint_macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1672,36 +1672,6 @@ macro_rules! uint_impl {
unsafe { mem::transmute(self) }
}

/// Return the memory representation of this integer as a byte array in
/// native byte order.
///
/// [`to_ne_bytes`] should be preferred over this whenever possible.
///
/// [`to_ne_bytes`]: Self::to_ne_bytes
///
/// # Examples
///
/// ```
/// #![feature(num_as_ne_bytes)]
#[doc = concat!("let num = ", $swap_op, stringify!($SelfT), ";")]
/// let bytes = num.as_ne_bytes();
/// assert_eq!(
/// bytes,
/// if cfg!(target_endian = "big") {
#[doc = concat!(" &", $be_bytes)]
/// } else {
#[doc = concat!(" &", $le_bytes)]
/// }
/// );
/// ```
#[unstable(feature = "num_as_ne_bytes", issue = "76976")]
#[inline]
pub fn as_ne_bytes(&self) -> &[u8; mem::size_of::<Self>()] {
// SAFETY: integers are plain old datatypes so we can always transmute them to
// arrays of bytes
unsafe { &*(self as *const Self as *const _) }
}

/// Create a native endian integer value from its representation
/// as a byte array in big endian.
///
Expand Down

0 comments on commit f3b10dd

Please sign in to comment.