1.0.0[−][src]Struct std::cell::Ref
Wraps a borrowed reference to a value in a RefCell box.
A wrapper type for an immutably borrowed value from a RefCell<T>.
See the module-level documentation for more.
Methods
impl<'b, T> Ref<'b, T> where
T: ?Sized, [src]
impl<'b, T> Ref<'b, T> where
T: ?Sized, pub fn clone(orig: &Ref<'b, T>) -> Ref<'b, T>1.15.0[src]
pub fn clone(orig: &Ref<'b, T>) -> Ref<'b, T>Copies a Ref.
The RefCell is already immutably borrowed, so this cannot fail.
This is an associated function that needs to be used as
Ref::clone(...). A Clone implementation or a method would interfere
with the widespread use of r.borrow().clone() to clone the contents of
a RefCell.
pub fn map<U, F>(orig: Ref<'b, T>, f: F) -> Ref<'b, U> where
F: FnOnce(&T) -> &U,
U: ?Sized, 1.8.0[src]
pub fn map<U, F>(orig: Ref<'b, T>, f: F) -> Ref<'b, U> where
F: FnOnce(&T) -> &U,
U: ?Sized, Make a new Ref for a component of the borrowed data.
The RefCell is already immutably borrowed, so this cannot fail.
This is an associated function that needs to be used as Ref::map(...).
A method would interfere with methods of the same name on the contents
of a RefCell used through Deref.
Examples
use std::cell::{RefCell, Ref}; let c = RefCell::new((5, 'b')); let b1: Ref<(u32, char)> = c.borrow(); let b2: Ref<u32> = Ref::map(b1, |t| &t.0); assert_eq!(*b2, 5)Run
pub fn map_split<U, V, F>(orig: Ref<'b, T>, f: F) -> (Ref<'b, U>, Ref<'b, V>) where
F: FnOnce(&T) -> (&U, &V),
U: ?Sized,
V: ?Sized, [src]
pub fn map_split<U, V, F>(orig: Ref<'b, T>, f: F) -> (Ref<'b, U>, Ref<'b, V>) where
F: FnOnce(&T) -> (&U, &V),
U: ?Sized,
V: ?Sized, Split a Ref into multiple Refs for different components of the
borrowed data.
The RefCell is already immutably borrowed, so this cannot fail.
This is an associated function that needs to be used as
Ref::map_split(...). A method would interfere with methods of the same
name on the contents of a RefCell used through Deref.
Examples
#![feature(refcell_map_split)] use std::cell::{Ref, RefCell}; let cell = RefCell::new([1, 2, 3, 4]); let borrow = cell.borrow(); let (begin, end) = Ref::map_split(borrow, |slice| slice.split_at(2)); assert_eq!(*begin, [1, 2]); assert_eq!(*end, [3, 4]);Run
Trait Implementations
impl<'b, T> Deref for Ref<'b, T> where
T: ?Sized, [src]
impl<'b, T> Deref for Ref<'b, T> where
T: ?Sized, type Target = T
The resulting type after dereferencing.
ⓘImportant traits for &'a mut Ifn deref(&self) -> &T[src]
fn deref(&self) -> &TDereferences the value.
impl<'b, T> Debug for Ref<'b, T> where
T: Debug + ?Sized, [src]
impl<'b, T> Debug for Ref<'b, T> where
T: Debug + ?Sized, fn fmt(&self, f: &mut Formatter) -> Result<(), Error>[src]
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>Formats the value using the given formatter. Read more
impl<'b, T, U> CoerceUnsized<Ref<'b, U>> for Ref<'b, T> where
T: Unsize<U> + ?Sized,
U: ?Sized, [src]
impl<'b, T, U> CoerceUnsized<Ref<'b, U>> for Ref<'b, T> where
T: Unsize<U> + ?Sized,
U: ?Sized, impl<'a, T> Display for Ref<'a, T> where
T: Display + ?Sized, 1.20.0[src]
impl<'a, T> Display for Ref<'a, T> where
T: Display + ?Sized, Auto Trait Implementations
Blanket Implementations
impl<T, U> TryFrom for T where
T: From<U>, [src]
impl<T, U> TryFrom for T where
T: From<U>, type Error = !
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>Performs the conversion.
impl<T> From for T[src]
impl<T> From for Timpl<T, U> TryInto for T where
U: TryFrom<T>, [src]
impl<T, U> TryInto for T where
U: TryFrom<T>, type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>Performs the conversion.
impl<T, U> Into for T where
U: From<T>, [src]
impl<T, U> Into for T where
U: From<T>, impl<T> Borrow for T where
T: ?Sized, [src]
impl<T> Borrow for T where
T: ?Sized, ⓘImportant traits for &'a mut Ifn borrow(&self) -> &T[src]
fn borrow(&self) -> &TImmutably borrows from an owned value. Read more
impl<T> BorrowMut for T where
T: ?Sized, [src]
impl<T> BorrowMut for T where
T: ?Sized, ⓘImportant traits for &'a mut Ifn borrow_mut(&mut self) -> &mut T[src]
fn borrow_mut(&mut self) -> &mut TMutably borrows from an owned value. Read more
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Any for T where
T: 'static + ?Sized, fn get_type_id(&self) -> TypeId[src]
fn get_type_id(&self) -> TypeId🔬 This is a nightly-only experimental API. (get_type_id #27745)
this method will likely be replaced by an associated static
Gets the TypeId of self. Read more
impl<T> ToString for T where
T: Display + ?Sized, [src]
impl<T> ToString for T where
T: Display + ?Sized,