Trait boa_gc::Trace

source ·
pub unsafe trait Trace: Finalize {
    // Required methods
    unsafe fn trace(&self, tracer: &mut Tracer);
    unsafe fn trace_non_roots(&self);
    fn run_finalizer(&self);
}
Expand description

The Trace trait, which needs to be implemented on garbage-collected objects.

§Safety

  • An incorrect implementation of the trait can result in heap overflows, data corruption, use-after-free, or Undefined Behaviour in general.

  • Calling any of the functions marked as unsafe outside of the context of the garbage collector can result in Undefined Behaviour.

Required Methods§

source

unsafe fn trace(&self, tracer: &mut Tracer)

Marks all contained Gcs.

§Safety

See Trace.

source

unsafe fn trace_non_roots(&self)

Trace handles located in GC heap, and mark them as non root.

§Safety

See Trace.

source

fn run_finalizer(&self)

Runs Finalize::finalize on this object and all contained subobjects.

Implementations on Foreign Types§

source§

impl Trace for bool

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for char

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for f32

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for f64

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for i8

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for i16

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for i32

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for i64

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for i128

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for isize

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for u8

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for u16

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for u32

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for u64

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for u128

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for ()

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for usize

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for Box<str>

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for Rc<str>

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for String

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for TypeId

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for AtomicBool

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for AtomicI8

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for AtomicI16

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for AtomicI32

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for AtomicI64

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for AtomicIsize

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for AtomicU8

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for AtomicU16

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for AtomicU32

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for AtomicU64

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for AtomicUsize

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for Path

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for PathBuf

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for NonZeroI8

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for NonZeroI16

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for NonZeroI32

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for NonZeroI64

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for NonZeroI128

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for NonZeroIsize

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for NonZeroU8

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for NonZeroU16

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for NonZeroU32

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for NonZeroU64

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for NonZeroU128

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl Trace for NonZeroUsize

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<A: Trace> Trace for (A,)

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<A: Trace, B: Trace> Trace for (A, B)

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<A: Trace, B: Trace, C: Trace> Trace for (A, B, C)

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<A: Trace, B: Trace, C: Trace, D: Trace> Trace for (A, B, C, D)

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<A: Trace, B: Trace, C: Trace, D: Trace, E: Trace> Trace for (A, B, C, D, E)

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<A: Trace, B: Trace, C: Trace, D: Trace, E: Trace, F: Trace> Trace for (A, B, C, D, E, F)

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<A: Trace, B: Trace, C: Trace, D: Trace, E: Trace, F: Trace, G: Trace> Trace for (A, B, C, D, E, F, G)

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<A: Trace, B: Trace, C: Trace, D: Trace, E: Trace, F: Trace, G: Trace, H: Trace> Trace for (A, B, C, D, E, F, G, H)

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<A: Trace, B: Trace, C: Trace, D: Trace, E: Trace, F: Trace, G: Trace, H: Trace, I: Trace> Trace for (A, B, C, D, E, F, G, H, I)

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<A: Trace, B: Trace, C: Trace, D: Trace, E: Trace, F: Trace, G: Trace, H: Trace, I: Trace, J: Trace> Trace for (A, B, C, D, E, F, G, H, I, J)

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<A: Trace, B: Trace, C: Trace, D: Trace, E: Trace, F: Trace, G: Trace, H: Trace, I: Trace, J: Trace, K: Trace> Trace for (A, B, C, D, E, F, G, H, I, J, K)

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<A: Trace, B: Trace, C: Trace, D: Trace, E: Trace, F: Trace, G: Trace, H: Trace, I: Trace, J: Trace, K: Trace, L: Trace> Trace for (A, B, C, D, E, F, G, H, I, J, K, L)

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<K: Eq + Hash + Trace, V: Trace, S: BuildHasher> Trace for HashMap<K, V, S>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<K: Eq + Hash + Trace, V: Trace, S: BuildHasher> Trace for HashMap<K, V, S>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<K: Trace, V: Trace> Trace for BTreeMap<K, V>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret> Trace for fn() -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret> Trace for extern "C" fn() -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret> Trace for unsafe fn() -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret> Trace for unsafe extern "C" fn() -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A> Trace for fn(_: A) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A> Trace for extern "C" fn(_: A) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A> Trace for extern "C" fn(_: A, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A> Trace for unsafe fn(_: A) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A> Trace for unsafe extern "C" fn(_: A) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A> Trace for unsafe extern "C" fn(_: A, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B> Trace for fn(_: A, _: B) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B> Trace for extern "C" fn(_: A, _: B) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B> Trace for extern "C" fn(_: A, _: B, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B> Trace for unsafe fn(_: A, _: B) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B> Trace for unsafe extern "C" fn(_: A, _: B) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B> Trace for unsafe extern "C" fn(_: A, _: B, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C> Trace for fn(_: A, _: B, _: C) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C> Trace for extern "C" fn(_: A, _: B, _: C) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C> Trace for extern "C" fn(_: A, _: B, _: C, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C> Trace for unsafe fn(_: A, _: B, _: C) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C> Trace for unsafe extern "C" fn(_: A, _: B, _: C) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C> Trace for unsafe extern "C" fn(_: A, _: B, _: C, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D> Trace for fn(_: A, _: B, _: C, _: D) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D> Trace for extern "C" fn(_: A, _: B, _: C, _: D) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D> Trace for extern "C" fn(_: A, _: B, _: C, _: D, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D> Trace for unsafe fn(_: A, _: B, _: C, _: D) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E> Trace for fn(_: A, _: B, _: C, _: D, _: E) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E> Trace for unsafe fn(_: A, _: B, _: C, _: D, _: E) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F> Trace for fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F> Trace for unsafe fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G> Trace for fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G> Trace for unsafe fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H> Trace for fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H> Trace for unsafe fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I> Trace for fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I> Trace for unsafe fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J> Trace for fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J> Trace for unsafe fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Trace for fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Trace for unsafe fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Trace for fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Trace for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Trace for unsafe fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Trace for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, ...) -> Ret

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T> Trace for PhantomData<T>

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: ToOwned + Trace + ?Sized> Trace for Cow<'static, T>
where T::Owned: Trace,

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Eq + Hash + Trace> Trace for LinkedList<T>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Eq + Hash + Trace, S: BuildHasher> Trace for HashSet<T, S>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Ord + Trace> Trace for BinaryHeap<T>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Trace + ?Sized> Trace for Box<T>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Trace> Trace for Option<T>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Trace> Trace for Box<[T]>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Trace> Trace for BTreeSet<T>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Trace> Trace for VecDeque<T>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Trace> Trace for Vec<T>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Trace> Trace for OnceCell<T>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Trace> Trace for Cell<Option<T>>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Trace, E: Trace> Trace for Result<T, E>

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: Trace, const N: usize> Trace for [T; N]

source§

unsafe fn trace(&self, tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

source§

impl<T: ?Sized> Trace for &'static T

source§

unsafe fn trace(&self, _tracer: &mut Tracer)

source§

unsafe fn trace_non_roots(&self)

source§

fn run_finalizer(&self)

Implementors§

source§

impl<K: Trace + ?Sized + 'static, V: Trace + 'static> Trace for WeakMap<K, V>

source§

impl<K: Trace + ?Sized, V: Trace> Trace for Ephemeron<K, V>

source§

impl<T: Trace + ?Sized + 'static> Trace for WeakGc<T>
where Ephemeron<T, ()>: Trace,

source§

impl<T: Trace + ?Sized> Trace for Gc<T>

source§

impl<T: Trace + ?Sized> Trace for GcRefCell<T>