[src]

Struct std::cell::RefCell

pub struct RefCell<T> {
    // some fields omitted
}

A mutable memory location with dynamically checked borrow rules

Methods

impl<T> RefCell<T>

fn new(value: T) -> RefCell<T>

Create a new RefCell containing value

fn unwrap(self) -> T

Consumes the RefCell, returning the wrapped value.

fn try_borrow<'a>(&'a self) -> Option<Ref<'a, T>>

Attempts to immutably borrow the wrapped value.

The borrow lasts until the returned Ref exits scope. Multiple immutable borrows can be taken out at the same time.

Returns None if the value is currently mutably borrowed.

fn borrow<'a>(&'a self) -> Ref<'a, T>

Immutably borrows the wrapped value.

The borrow lasts until the returned Ref exits scope. Multiple immutable borrows can be taken out at the same time.

Failure

Fails if the value is currently mutably borrowed.

fn try_borrow_mut<'a>(&'a self) -> Option<RefMut<'a, T>>

Mutably borrows the wrapped value.

The borrow lasts until the returned RefMut exits scope. The value cannot be borrowed while this borrow is active.

Returns None if the value is currently borrowed.

fn borrow_mut<'a>(&'a self) -> RefMut<'a, T>

Mutably borrows the wrapped value.

The borrow lasts until the returned RefMut exits scope. The value cannot be borrowed while this borrow is active.

Failure

Fails if the value is currently borrowed.

fn set(&self, value: T)

Sets the value, replacing what was there.

Failure

Fails if the value is currently borrowed.

impl<T: Clone> RefCell<T>

fn get(&self) -> T

Returns a copy of the contained value.

Failure

Fails if the value is currently mutably borrowed.

Trait Implementations

impl<T: Clone> Clone for RefCell<T>

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

Returns a copy of the value. The contents of owned pointers are copied to maintain uniqueness, while the contents of managed pointers are not copied.

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

Perform copy-assignment from source.

a.clone_from(&b) is equivalent to a = b.clone() in functionality, but can be overridden to reuse the resources of a to avoid unnecessary allocations.

impl<T: Eq> Eq for RefCell<T>

fn eq(&self, other: &RefCell<T>) -> bool

fn ne(&self, other: &Self) -> bool