[][src]Trait gc::Trace

pub unsafe trait Trace: Finalize {
    unsafe fn trace(&self);
unsafe fn root(&self);
unsafe fn unroot(&self);
fn finalize_glue(&self); }

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

Required methods

unsafe fn trace(&self)

Marks all contained Gcs.

unsafe fn root(&self)

Increments the root-count of all contained Gcs.

unsafe fn unroot(&self)

Decrements the root-count of all contained Gcs.

fn finalize_glue(&self)

Runs Finalize::finalize() on this object and all contained subobjects

Loading content...

Implementations on Foreign Types

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

impl Trace for ()[src]

impl Trace for bool[src]

impl Trace for isize[src]

impl Trace for usize[src]

impl Trace for i8[src]

impl Trace for u8[src]

impl Trace for i16[src]

impl Trace for u16[src]

impl Trace for i32[src]

impl Trace for u32[src]

impl Trace for i64[src]

impl Trace for u64[src]

impl Trace for i128[src]

impl Trace for u128[src]

impl Trace for f32[src]

impl Trace for f64[src]

impl Trace for char[src]

impl Trace for String[src]

impl Trace for Box<str>[src]

impl Trace for Path[src]

impl Trace for PathBuf[src]

impl Trace for NonZeroIsize[src]

impl Trace for NonZeroUsize[src]

impl Trace for NonZeroI8[src]

impl Trace for NonZeroU8[src]

impl Trace for NonZeroI16[src]

impl Trace for NonZeroU16[src]

impl Trace for NonZeroI32[src]

impl Trace for NonZeroU32[src]

impl Trace for NonZeroI64[src]

impl Trace for NonZeroU64[src]

impl Trace for NonZeroI128[src]

impl Trace for NonZeroU128[src]

impl Trace for AtomicBool[src]

impl Trace for AtomicIsize[src]

impl Trace for AtomicUsize[src]

impl Trace for AtomicI8[src]

impl Trace for AtomicU8[src]

impl Trace for AtomicI16[src]

impl Trace for AtomicU16[src]

impl Trace for AtomicI32[src]

impl Trace for AtomicU32[src]

impl Trace for AtomicI64[src]

impl Trace for AtomicU64[src]

impl<T: Trace> Trace for [T; 0][src]

impl<T: Trace> Trace for [T; 1][src]

impl<T: Trace> Trace for [T; 2][src]

impl<T: Trace> Trace for [T; 3][src]

impl<T: Trace> Trace for [T; 4][src]

impl<T: Trace> Trace for [T; 5][src]

impl<T: Trace> Trace for [T; 6][src]

impl<T: Trace> Trace for [T; 7][src]

impl<T: Trace> Trace for [T; 8][src]

impl<T: Trace> Trace for [T; 9][src]

impl<T: Trace> Trace for [T; 10][src]

impl<T: Trace> Trace for [T; 11][src]

impl<T: Trace> Trace for [T; 12][src]

impl<T: Trace> Trace for [T; 13][src]

impl<T: Trace> Trace for [T; 14][src]

impl<T: Trace> Trace for [T; 15][src]

impl<T: Trace> Trace for [T; 16][src]

impl<T: Trace> Trace for [T; 17][src]

impl<T: Trace> Trace for [T; 18][src]

impl<T: Trace> Trace for [T; 19][src]

impl<T: Trace> Trace for [T; 20][src]

impl<T: Trace> Trace for [T; 21][src]

impl<T: Trace> Trace for [T; 22][src]

impl<T: Trace> Trace for [T; 23][src]

impl<T: Trace> Trace for [T; 24][src]

impl<T: Trace> Trace for [T; 25][src]

impl<T: Trace> Trace for [T; 26][src]

impl<T: Trace> Trace for [T; 27][src]

impl<T: Trace> Trace for [T; 28][src]

impl<T: Trace> Trace for [T; 29][src]

impl<T: Trace> Trace for [T; 30][src]

impl<T: Trace> Trace for [T; 31][src]

impl<Ret> Trace for fn() -> Ret[src]

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

impl<Ret> Trace for unsafe fn() -> Ret[src]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

impl<A: Trace, B: Trace> Trace for (A, B)[src]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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[src]

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[src]

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)[src]

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

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[src]

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[src]

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[src]

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[src]

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[src]

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)[src]

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[src]

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[src]

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[src]

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[src]

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[src]

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[src]

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)[src]

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[src]

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[src]

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[src]

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[src]

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[src]

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[src]

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)[src]

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[src]

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[src]

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[src]

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[src]

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[src]

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[src]

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)[src]

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

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

impl<T: Trace> Trace for Vec<T>[src]

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

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

impl<T: Ord + Trace> Trace for BinaryHeap<T>[src]

impl<K: Trace, V: Trace> Trace for BTreeMap<K, V>[src]

impl<T: Trace> Trace for BTreeSet<T>[src]

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

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

impl<T: Eq + Hash + Trace> Trace for LinkedList<T>[src]

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

Loading content...

Implementors

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

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

Loading content...