pub struct RootScope<'a> { /* private fields */ }Expand description
A RAII frame that roots a set of GcRefs and optionally chains to a parent
RootSet.
Roots are added via RootScope::root and dropped automatically when the
scope ends. A scope keeps its own roots live; the collector also walks the
parent chain, so a nested scope’s roots supplement (never replace) its
ancestors’.
Implementations§
Source§impl<'a> RootScope<'a>
impl<'a> RootScope<'a>
Sourcepub fn child(parent: &'a dyn RootSet) -> Self
pub fn child(parent: &'a dyn RootSet) -> Self
A scope that chains onto parent; its roots are added to parent’s.
Sourcepub fn root(&mut self, gcref: GcRef) -> GcRef
pub fn root(&mut self, gcref: GcRef) -> GcRef
Register gcref as a root for the lifetime of this scope and return a
copy of it. The returned GcRef is kept alive until the scope drops.
Called for its rooting side-effect; the returned copy is a convenience for chaining.
Sourcepub fn root_count(&self) -> usize
pub fn root_count(&self) -> usize
Number of roots held directly by this scope (excluding the parent chain).
Trait Implementations§
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for RootScope<'a>
impl<'a> !Send for RootScope<'a>
impl<'a> !Sync for RootScope<'a>
impl<'a> !UnwindSafe for RootScope<'a>
impl<'a> Freeze for RootScope<'a>
impl<'a> Unpin for RootScope<'a>
impl<'a> UnsafeUnpin for RootScope<'a>
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