pub struct Gc<'gc, T: Trace + 'gc> { /* private fields */ }
Expand description
A smart pointer to a value managed by a garbage-collector
This pointer can be created either by allocating a new garbage-collected value using the
GcScope::alloc
method or by cloning an existing Gc
pointer with Gc::clone
.
This pointer can only be used during the lifetime of the corresponding garbage-collected
scope (represented by the lifetime 'gc
).
By default, a Gc
pointer acts as a root for its value: as long as the Gc
is on the stack
its value is kept alive.
A Gc
is unrooted only when it is moved (transitively) inside another Gc
.
Trait Implementations
sourceimpl<'gc, T: Trace + 'gc> Clone for Gc<'gc, T>
impl<'gc, T: Trace + 'gc> Clone for Gc<'gc, T>
Creates a new Gc
pointer for the same value.
It is recommended to use it as Gc::clone(&gc)
instead of gc.clone()
to avoid confusion
with the clone
method of the inner value.
sourceimpl<'gc, T: Trace> Deref for Gc<'gc, T>
impl<'gc, T: Trace> Deref for Gc<'gc, T>
The Deref
implementation allows to use the value’s methods directly on the Gc
pointer.