Struct std::cell::RefCellStable [-]  [+] [src]

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 into_inner(self) -> T

Consumes the RefCell, returning the wrapped value.

fn unwrap(self) -> T

Deprecated, use into_inner() instead

fn try_borrow(&'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 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.

Panics

Panics if the value is currently mutably borrowed.

fn try_borrow_mut(&'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 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.

Panics

Panics if the value is currently borrowed.

unsafe fn as_unsafe_cell(&'a self) -> &'a UnsafeCell<T>

Get a reference to the underlying UnsafeCell.

This can be used to circumvent RefCell's safety checks.

This function is unsafe because UnsafeCell's field is public.

Trait Implementations

impl<T> Send for RefCell<T>

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

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

fn clone_from(&mut self, &RefCell<T>)

impl<T: Default> Default for RefCell<T>

fn default() -> RefCell<T>

impl<T: PartialEq<T>> PartialEq<RefCell<T>> for RefCell<T>

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

fn ne(&self, &RefCell<T>) -> bool

impl<T: Show> Show for RefCell<T>

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