[][src]Trait gluon_vm::gc::Trace

pub unsafe trait Trace {
    unsafe fn root(&mut self) { ... }
unsafe fn unroot(&mut self) { ... }
fn trace(&self, gc: &mut Gc) { ... } }

Trait which must be implemented on all root types which contain GcPtr A type unsafe implementing Trace must call trace on each of its fields which in turn contains GcPtr

Provided methods

unsafe fn root(&mut self)

unsafe fn unroot(&mut self)

fn trace(&self, gc: &mut Gc)

Loading content...

Implementations on Foreign Types

impl<'a, T: ?Sized + Trace> Trace for &'a T[src]

impl<'a, T: ?Sized + Trace> Trace for &'a mut T[src]

impl<'a, T: ?Sized + Trace> Trace for Box<T>[src]

impl<'a, T: ?Sized + Trace> Trace for Arc<T>[src]

impl<'a, T: ?Sized + Trace> Trace for Rc<T>[src]

impl<'a, T: Trace> Trace for Vec<T>[src]

impl<J> Trace for (J,) where
    J: Trace
[src]

impl<I, J> Trace for (I, J) where
    I: Trace,
    J: Trace
[src]

impl<H, I, J> Trace for (H, I, J) where
    H: Trace,
    I: Trace,
    J: Trace
[src]

impl<G, H, I, J> Trace for (G, H, I, J) where
    G: Trace,
    H: Trace,
    I: Trace,
    J: Trace
[src]

impl<F, G, H, I, J> Trace for (F, G, H, I, J) where
    F: Trace,
    G: Trace,
    H: Trace,
    I: Trace,
    J: Trace
[src]

impl<E, F, G, H, I, J> Trace for (E, F, G, H, I, J) where
    E: Trace,
    F: Trace,
    G: Trace,
    H: Trace,
    I: Trace,
    J: Trace
[src]

impl<D, E, F, G, H, I, J> Trace for (D, E, F, G, H, I, J) where
    D: Trace,
    E: Trace,
    F: Trace,
    G: Trace,
    H: Trace,
    I: Trace,
    J: Trace
[src]

impl<C, D, E, F, G, H, I, J> Trace for (C, D, E, F, G, H, I, J) where
    C: Trace,
    D: Trace,
    E: Trace,
    F: Trace,
    G: Trace,
    H: Trace,
    I: Trace,
    J: Trace
[src]

impl<B, C, D, E, F, G, H, I, J> Trace for (B, C, D, E, F, G, H, I, J) where
    B: Trace,
    C: Trace,
    D: Trace,
    E: Trace,
    F: Trace,
    G: Trace,
    H: Trace,
    I: Trace,
    J: Trace
[src]

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

impl Trace for ()[src]

impl Trace for u8[src]

impl Trace for u16[src]

impl Trace for u32[src]

impl Trace for u64[src]

impl Trace for usize[src]

impl Trace for i8[src]

impl Trace for i16[src]

impl Trace for i32[src]

impl Trace for i64[src]

impl Trace for isize[src]

impl Trace for f32[src]

impl Trace for f64[src]

impl Trace for str[src]

impl Trace for String[src]

impl Trace for bool[src]

impl<T> Trace for Option<T> where
    T: Trace
[src]

impl<T, E> Trace for StdResult<T, E> where
    T: Trace,
    E: Trace
[src]

impl<T: ?Sized> Trace for PhantomData<T>[src]

impl<T: ?Sized> Trace for *const T[src]

impl<T: ?Sized> Trace for *mut T[src]

impl<T> Trace for Cell<T> where
    T: Trace + Copy
[src]

impl<T> Trace for Mutex<T> where
    T: Trace
[src]

impl<T> Trace for RwLock<T> where
    T: Trace
[src]

impl<'_, T> Trace for RwLockReadGuard<'_, T> where
    T: Trace
[src]

impl<T> Trace for RwLock<T> where
    T: Trace
[src]

impl<'_, T> Trace for RwLockReadGuard<'_, T> where
    T: Trace
[src]

impl<U> Trace for [U] where
    U: Trace
[src]

impl<T> Trace for VecDeque<T> where
    T: Trace
[src]

impl<K, V, H> Trace for HashMap<K, V, H> where
    V: Trace
[src]

impl<V, H> Trace for HashSet<V, H> where
    V: Trace
[src]

impl Trace for Slab<GcPtr<Thread>>[src]

Loading content...

Implementors

impl Trace for A[src]

impl Trace for B[src]

impl Trace for C[src]

impl Trace for D[src]

impl Trace for E[src]

impl Trace for F[src]

impl Trace for G[src]

impl Trace for H[src]

impl Trace for I[src]

impl Trace for J[src]

impl Trace for K[src]

impl Trace for L[src]

impl Trace for M[src]

impl Trace for N[src]

impl Trace for O[src]

impl Trace for P[src]

impl Trace for Q[src]

impl Trace for R[src]

impl Trace for S[src]

impl Trace for T[src]

impl Trace for U[src]

impl Trace for V[src]

impl Trace for X[src]

impl Trace for Y[src]

impl Trace for Z[src]

impl Trace for ClosureData[src]

impl Trace for InternedStr[src]

impl Trace for Value[src]

impl Trace for MacroEnv[src]

impl Trace for DirEntry[src]

impl Trace for Metadata[src]

impl Trace for Stack[src]

impl Trace for RootedThread[src]

impl Trace for Thread[src]

impl Trace for GlobalVmState[src]

impl Trace for Globals[src]

impl<'_> Trace for VmEnvInstance<'_>[src]

impl<'a> Trace for Variants<'a>[src]

impl<'a, T: Trace> Trace for Borrow<'a, T>[src]

impl<T> Trace for Receiver<T>[src]

impl<T> Trace for Sender<T>[src]

impl<T> Trace for gluon_vm::gc::mutex::Mutex<T> where
    T: Trace
[src]

impl<T> Trace for Move<T> where
    T: Trace
[src]

impl<T> Trace for Lazy<T>[src]

impl<T> Trace for Reference<T>[src]

impl<T> Trace for RootedValue<T> where
    T: VmRootInternal
[src]

impl<T, V> Trace for Opaque<T, V> where
    T: Trace
[src]

impl<T: VmRootInternal + Trace, F> Trace for Function<T, F>[src]

impl<T: ?Sized> Trace for GcPtr<T> where
    T: Trace
[src]

When traversing a GcPtr we need to mark it

impl<V> Trace for Global<V> where
    V: Trace
[src]

Loading content...