Struct alloc::rc::Weak [] [src]

pub struct Weak<T: ?Sized> {
    // some fields omitted

A weak version of Rc<T>.

Weak references do not count when determining if the inner value should be dropped.

See the module level documentation for more.


impl<T: ?Sized> Weak<T>

fn upgrade(&self) -> Option<Rc<T>>

Upgrades a weak reference to a strong reference.

Upgrades the Weak<T> reference to an Rc<T>, if possible.

Returns None if there were no strong references and the data was destroyed.


use std::rc::Rc;

let five = Rc::new(5);

let weak_five = Rc::downgrade(&five);

let strong_five: Option<Rc<_>> = weak_five.upgrade();

Trait Implementations

impl<T: ?Sized> !Send for Weak<T>

impl<T: ?Sized> !Sync for Weak<T>

impl<T: ?Sized + Unsize<U>, U: ?Sized> CoerceUnsized<Weak<U>> for Weak<T>

impl<T: ?Sized> Drop for Weak<T>

fn drop(&mut self)

impl<T: ?Sized> Clone for Weak<T>

fn clone(&self) -> Weak<T>

fn clone_from(&mut self, source: &Self)

impl<T: ?Sized + Debug> Debug for Weak<T>

fn fmt(&self, f: &mut Formatter) -> Result