pub struct PtrMut<'mem> { /* private fields */ }Expand description
A type-erased, mutable wide pointer to an initialized value.
Like PtrMut, but for unsized types where metadata is needed. Provides mutable access
to the underlying object, whose borrow is tracked by lifetime 'mem.
Implementations§
Source§impl<'mem> PtrMut<'mem>
impl<'mem> PtrMut<'mem>
Sourcepub const fn as_byte_ptr(self) -> *const u8
pub const fn as_byte_ptr(self) -> *const u8
Gets the underlying raw pointer
Sourcepub const fn as_mut_byte_ptr(self) -> *mut u8
pub const fn as_mut_byte_ptr(self) -> *mut u8
Gets the underlying raw pointer as mutable
Sourcepub const fn as_uninit(self) -> PtrUninit<'mem>
pub const fn as_uninit(self) -> PtrUninit<'mem>
Assumes the pointer is initialized and returns an Opaque pointer
§Safety
The pointer must actually be pointing to initialized memory of the correct type.
Sourcepub const unsafe fn as_ptr<T: ?Sized>(self) -> *const T
pub const unsafe fn as_ptr<T: ?Sized>(self) -> *const T
Gets the underlying raw pointer as a pointer of type T
§Safety
Must be called with the original type T that was used to create this pointer
Sourcepub const unsafe fn as_mut<'borrow: 'mem, T: ?Sized>(self) -> &'borrow mut T
pub const unsafe fn as_mut<'borrow: 'mem, T: ?Sized>(self) -> &'borrow mut T
Gets the underlying raw pointer as a mutable pointer of type T
§Safety
T must be the actual underlying type. You’re downcasting with no guardrails.
Sourcepub const unsafe fn get<'borrow: 'mem, T>(self) -> &'borrow T
pub const unsafe fn get<'borrow: 'mem, T>(self) -> &'borrow T
Gets the underlying raw pointer as a const pointer of type T
§Safety
T must be the actual underlying type. You’re downcasting with no guardrails.
You must respect AXM (aliasing xor mutability). Holding onto the borrow while
calling as_mut is UB.
Basically this is UB land. Careful.
Sourcepub const fn as_const<'borrow: 'mem>(self) -> PtrConst<'borrow>
pub const fn as_const<'borrow: 'mem>(self) -> PtrConst<'borrow>
Make a const ptr out of this mut ptr
Sourcepub const unsafe fn read<T>(self) -> T
pub const unsafe fn read<T>(self) -> T
Exposes core::ptr::read
§Safety
T must be the actual underlying type of the pointed-to memory.
The memory must be properly initialized and aligned for type T.
Sourcepub unsafe fn drop_in_place<T: ?Sized>(self) -> PtrUninit<'mem>
pub unsafe fn drop_in_place<T: ?Sized>(self) -> PtrUninit<'mem>
Exposes core::ptr::drop_in_place
§Safety
T must be the actual underlying type of the pointed-to memory.
The memory must be properly initialized and aligned for type T.
After calling this function, the memory should not be accessed again
until it is properly reinitialized.
Sourcepub unsafe fn replace<T>(self, value: T) -> Self
pub unsafe fn replace<T>(self, value: T) -> Self
Write a value to this location after dropping the existing value
§Safety
- The pointer must be properly aligned for T and point to allocated memory that can be safely written to.
- T must be the actual type of the object being pointed to
- The memory must already be initialized to a valid T value