Struct shadow_shim_helper_rs::rootedcell::refcell::RootedRefCell
source · #[repr(C)]pub struct RootedRefCell<T> { /* private fields */ }
Expand description
Analagous to std::cell::RefCell. In particular like std::cell::RefCell and unlike std::sync::Mutex, it doesn’t perform any atomic operations internally, making it relatively inexpensive.
Unlike std::cell::RefCell, this type is Send and Sync if T
is
Send. This is safe because the owner is required to prove access to the
associated Root, which is ![Sync]
, to borrow.
Implementations§
source§impl<T> RootedRefCell<T>
impl<T> RootedRefCell<T>
sourcepub fn borrow<'a>(&'a self, root: &'a Root) -> RootedRefCellRef<'a, T>
pub fn borrow<'a>(&'a self, root: &'a Root) -> RootedRefCellRef<'a, T>
Borrow a reference. Panics if root
is for the wrong Root, or
if this object is alread mutably borrowed.
sourcepub fn borrow_mut<'a>(&'a self, root: &'a Root) -> RootedRefCellRefMut<'a, T>
pub fn borrow_mut<'a>(&'a self, root: &'a Root) -> RootedRefCellRefMut<'a, T>
Borrow a mutable reference. Panics if root
is for the wrong
Root, or if this object is already borrowed.
pub fn into_inner(self) -> T
Trait Implementations§
source§impl<T: Debug> Debug for RootedRefCell<T>
impl<T: Debug> Debug for RootedRefCell<T>
source§impl<T> ExplicitDrop for RootedRefCell<T>where
T: ExplicitDrop,
impl<T> ExplicitDrop for RootedRefCell<T>where
T: ExplicitDrop,
type ExplicitDropParam = <T as ExplicitDrop>::ExplicitDropParam
type ExplicitDropResult = <T as ExplicitDrop>::ExplicitDropResult
fn explicit_drop( self, param: &Self::ExplicitDropParam, ) -> Self::ExplicitDropResult
impl<T: Send> Send for RootedRefCell<T>
impl<T: Send> Sync for RootedRefCell<T>
Auto Trait Implementations§
impl<T> !Freeze for RootedRefCell<T>
impl<T> !RefUnwindSafe for RootedRefCell<T>
impl<T> Unpin for RootedRefCell<T>where
T: Unpin,
impl<T> UnwindSafe for RootedRefCell<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more