Struct alloc::arc::Weak  1.4.0
                   
                       [−]
                   
               [src]
pub struct Weak<T: ?Sized> {
    // some fields omitted
}A weak pointer to an Arc.
Weak pointers will not keep the data inside of the Arc alive, and can be
used to break cycles between Arc pointers.
Methods
impl<T: ?Sized> Weak<T>[src]
fn upgrade(&self) -> Option<Arc<T>>
Upgrades a weak reference to a strong reference.
Upgrades the Weak<T> reference to an Arc<T>, if possible.
Returns None if there were no strong references and the data was
destroyed.
Examples
use std::sync::Arc; let five = Arc::new(5); let weak_five = Arc::downgrade(&five); let strong_five: Option<Arc<_>> = weak_five.upgrade();
impl<T> Weak<T>[src]
fn new() -> Weak<T>
Constructs a new Weak<T> without an accompanying instance of T.
This allocates memory for T, but does not initialize it. Calling
Weak
Examples
#![feature(downgraded_weak)] use std::sync::Weak; let empty: Weak<i64> = Weak::new();
Trait Implementations
impl<T: ?Sized + Sync + Send> Send for Weak<T>[src]
impl<T: ?Sized + Sync + Send> Sync for Weak<T>[src]
impl<T: ?Sized + Unsize<U>, U: ?Sized> CoerceUnsized<Weak<U>> for Weak<T>[src]
impl<T: ?Sized + Debug> Debug for Weak<T>[src]
impl<T: ?Sized> Clone for Weak<T>[src]
fn clone(&self) -> Weak<T>
Makes a clone of the Weak<T>.
This increases the weak reference count.
Examples
use std::sync::Arc; let weak_five = Arc::downgrade(&Arc::new(5)); weak_five.clone();
fn clone_from(&mut self, source: &Self)1.0.0
Performs copy-assignment from source. Read more
impl<T: ?Sized> Drop for Weak<T>[src]
fn drop(&mut self)
Drops the Weak<T>.
This will decrement the weak reference count.
Examples
use std::sync::Arc; { let five = Arc::new(5); let weak_five = Arc::downgrade(&five); // stuff drop(weak_five); // explicit drop } { let five = Arc::new(5); let weak_five = Arc::downgrade(&five); // stuff } // implicit drop