Lift T: Sized
bounds from some strict_provenance
NonNull
methods
This commit is contained in:
parent
1f34e11d1b
commit
662f1f20e4
@ -268,10 +268,7 @@ pub const fn to_raw_parts(self) -> (NonNull<()>, <T as super::Pointee>::Metadata
|
||||
#[must_use]
|
||||
#[inline]
|
||||
#[unstable(feature = "strict_provenance", issue = "95228")]
|
||||
pub fn addr(self) -> NonZeroUsize
|
||||
where
|
||||
T: Sized,
|
||||
{
|
||||
pub fn addr(self) -> NonZeroUsize {
|
||||
// SAFETY: The pointer is guaranteed by the type to be non-null,
|
||||
// meaning that the address will be non-zero.
|
||||
unsafe { NonZeroUsize::new_unchecked(self.pointer.addr()) }
|
||||
@ -286,10 +283,7 @@ pub fn addr(self) -> NonZeroUsize
|
||||
#[must_use]
|
||||
#[inline]
|
||||
#[unstable(feature = "strict_provenance", issue = "95228")]
|
||||
pub fn with_addr(self, addr: NonZeroUsize) -> Self
|
||||
where
|
||||
T: Sized,
|
||||
{
|
||||
pub fn with_addr(self, addr: NonZeroUsize) -> Self {
|
||||
// SAFETY: The result of `ptr::from::with_addr` is non-null because `addr` is guaranteed to be non-zero.
|
||||
unsafe { NonNull::new_unchecked(self.pointer.with_addr(addr.get()) as *mut _) }
|
||||
}
|
||||
@ -303,10 +297,7 @@ pub fn with_addr(self, addr: NonZeroUsize) -> Self
|
||||
#[must_use]
|
||||
#[inline]
|
||||
#[unstable(feature = "strict_provenance", issue = "95228")]
|
||||
pub fn map_addr(self, f: impl FnOnce(NonZeroUsize) -> NonZeroUsize) -> Self
|
||||
where
|
||||
T: Sized,
|
||||
{
|
||||
pub fn map_addr(self, f: impl FnOnce(NonZeroUsize) -> NonZeroUsize) -> Self {
|
||||
self.with_addr(f(self.addr()))
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user