Struct DontDrop

Source
pub struct DontDrop<T>(/* private fields */);
Expand description

A wrapper that guarentees that the dropper of the underlying object cannot be safely called.

Implementations§

Source§

impl<T> DontDrop<T>

Source

pub const fn new(value: T) -> Self

Source

pub const unsafe fn into_inner(self) -> T

Gets the underlying value.

§Safety

At least one of the following must be upheld

  • The inner value cannot be dropped
  • The circumstances outlined in the safety section of DontDrop::drop
Source

pub unsafe fn drop(self)

Drops the underlying value.

§Safety

Documentation from the provider of this value may specify circumstances where this function is safe to call.

Trait Implementations§

Source§

impl<T> AsMut<T> for DontDrop<T>

Source§

fn as_mut(&mut self) -> &mut T

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl<T> AsRef<T> for DontDrop<T>

Source§

fn as_ref(&self) -> &T

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<T> Deref for DontDrop<T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<T> DerefMut for DontDrop<T>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<T> From<T> for DontDrop<T>

Source§

fn from(value: T) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<T> Freeze for DontDrop<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for DontDrop<T>
where T: RefUnwindSafe,

§

impl<T> Send for DontDrop<T>
where T: Send,

§

impl<T> Sync for DontDrop<T>
where T: Sync,

§

impl<T> Unpin for DontDrop<T>
where T: Unpin,

§

impl<T> UnwindSafe for DontDrop<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<!> for T

Source§

fn from(t: !) -> T

Converts to this type from the input type.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.