pub(crate) struct PhantomDrop<T>(PhantomData<T>);
Expand description
A cute utility type that works just like PhantomData, but also implements Drop. This forces any lifetimes that are associated with the type to be used until the Drop impl is ran. This prevents lifetimes from being shortened.
Tuple Fields§
§0: PhantomData<T>
Trait Implementations§
source§impl<T: Debug> Debug for PhantomDrop<T>
impl<T: Debug> Debug for PhantomDrop<T>
source§impl<T> Default for PhantomDrop<T>
impl<T> Default for PhantomDrop<T>
Auto Trait Implementations§
impl<T> Freeze for PhantomDrop<T>
impl<T> RefUnwindSafe for PhantomDrop<T>where
T: RefUnwindSafe,
impl<T> Send for PhantomDrop<T>where
T: Send,
impl<T> Sync for PhantomDrop<T>where
T: Sync,
impl<T> Unpin for PhantomDrop<T>where
T: Unpin,
impl<T> UnwindSafe for PhantomDrop<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more