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)
impl<T: Clone> RefCell<T>
fn get(&self) -> T
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.