Struct lifelink::Deathtouch

source ·
pub struct Deathtouch<'a, C: Ctor> { /* private fields */ }
Expand description

A guard value that preserves compile-time lifetime information from the value passed to Lifelink::new.

This will block the calling thread when unwrapped or dropped, until all Guards currently alive go out of the scope. The value can then no longer be accessed from the corresponding Lifelink.

Note that Unlike cryo, this does not attempt to wait until the Lifelink handle itself is dropped, only the Guard values it produces. See the Caveats section of README for more details.

Implementations§

source§

impl<'a, C: Ctor> Deathtouch<'a, C>

source

pub fn unwrap(self) -> C::Ty<'a>

Unwrap the contained value and return it. This will block until there is no other references to the value, so that compile-time lifetime invariants hold.

See the module-level documentation for examples.

Trait Implementations§

source§

impl<'a, C: Ctor> Drop for Deathtouch<'a, C>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<'a, C: SendCtor> Send for Deathtouch<'a, C>

Auto Trait Implementations§

§

impl<'a, C> !RefUnwindSafe for Deathtouch<'a, C>

§

impl<'a, C> !Sync for Deathtouch<'a, C>

§

impl<'a, C> Unpin for Deathtouch<'a, C>

§

impl<'a, C> !UnwindSafe for Deathtouch<'a, C>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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<T, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.