[][src]Struct parc::LockWeak

pub struct LockWeak<T> { /* fields omitted */ }

Weak reference to a ParentArc.

This instance can be locked at any moment, you can try to upgrade it into a ChildArc which assures it can be read until the reader is dropped.

The typical way to obtain a Weak pointer is to call ParentArc::downgrade.


impl<T> LockWeak<T>[src]

pub fn upgrade(&self) -> Option<ChildArc<T>>[src]

Upgrades this Weak reference into a ChildArc if the data is unlocked or still owned by the ParentArc.


use parc::{ParentArc, LockWeak};
use std::sync::Mutex;
fn main() {
    let parent = ParentArc::new(Mutex::new(true));

    let weak: LockWeak<_> = ParentArc::downgrade(&parent);
    let child = weak.upgrade().unwrap();

Trait Implementations

impl<T> Send for LockWeak<T>[src]

Auto Trait Implementations

impl<T> Unpin for LockWeak<T>

impl<T> !Sync for LockWeak<T>

impl<T> UnwindSafe for LockWeak<T> where
    T: RefUnwindSafe

impl<T> RefUnwindSafe for LockWeak<T> where
    T: RefUnwindSafe

Blanket Implementations

impl<T> From<T> for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

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

The type returned in the event of a conversion error.

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

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

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