[][src]Trait boa::gc::Trace

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

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

Required methods

pub unsafe fn trace(&self)[src]

Marks all contained Gcs.

pub unsafe fn root(&self)[src]

Increments the root-count of all contained Gcs.

pub unsafe fn unroot(&self)[src]

Decrements the root-count of all contained Gcs.

pub fn finalize_glue(&self)[src]

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

Loading content...

Implementations on Foreign Types

impl Trace for char[src]

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

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

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

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

impl<T> Trace for LinkedList<T> where
    T: Trace + Eq + Hash
[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> Trace for unsafe extern "C" fn() -> 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, 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> Trace for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret[src]

impl<T> Trace for [T; 31] where
    T: Trace
[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> Trace for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret[src]

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

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

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

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

impl<T> Trace for [T; 28] where
    T: Trace
[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 Trace for AtomicBool[src]

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

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

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

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

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

impl Trace for AtomicI16[src]

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

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

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

impl Trace for f64[src]

impl Trace for ()[src]

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

impl Trace for Box<str, Global>[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> Trace for fn(A, B) -> Ret[src]

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

impl Trace for PathBuf[src]

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

impl Trace for NonZeroU32[src]

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

impl Trace for Path[src]

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

impl Trace for i64[src]

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

impl<Ret, A, B, C> Trace for unsafe fn(A, B, C) -> 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, H> Trace for unsafe fn(A, B, C, D, E, F, G, H) -> Ret[src]

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

impl Trace for AtomicU32[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, F, G, H, I, J> Trace for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Ret[src]

impl Trace for NonZeroIsize[src]

impl<T> Trace for [T; 3] where
    T: Trace
[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> Trace for extern "C" fn(A, B, C, D, E, F, ...) -> Ret[src]

impl Trace for NonZeroU8[src]

impl<Ret, A> Trace for extern "C" fn(A, ...) -> 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, H, I> Trace for fn(A, B, C, D, E, F, G, H, I) -> Ret[src]

impl<A, B, C, D, E, F, G> Trace for (A, B, C, D, E, F, G) where
    C: Trace,
    E: Trace,
    B: Trace,
    A: Trace,
    F: Trace,
    D: Trace,
    G: Trace
[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> Trace for unsafe fn(A, B, C, D, E) -> Ret[src]

impl Trace for isize[src]

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

impl Trace for NonZeroUsize[src]

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

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

impl Trace for u32[src]

impl Trace for NonZeroI8[src]

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

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

impl Trace for AtomicU64[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<T> Trace for [T; 13] where
    T: Trace
[src]

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

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

impl<T> Trace for [T; 21] where
    T: Trace
[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> 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, D> Trace for fn(A, B, C, D) -> Ret[src]

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

impl Trace for i16[src]

impl<T> Trace for [T; 7] where
    T: Trace
[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, I, J, K> Trace for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret[src]

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

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

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

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

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

impl<T> Trace for [T; 10] where
    T: Trace
[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 Trace for f32[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<T> Trace for [T; 1] where
    T: Trace
[src]

impl Trace for NonZeroU64[src]

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

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

impl Trace for AtomicI32[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> Trace for extern "C" fn(A) -> Ret[src]

impl Trace for NonZeroU16[src]

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

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

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

impl<T> Trace for BinaryHeap<T> where
    T: Trace + Ord
[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 Trace for u128[src]

impl<Ret, A, B, C, D> Trace for extern "C" fn(A, B, C, D, ...) -> 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> Trace for extern "C" fn(A, B, ...) -> Ret[src]

impl Trace for NonZeroI32[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, F, G, H, I> Trace for extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret[src]

impl Trace for AtomicU8[src]

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

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

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

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

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

impl<T> Trace for Box<[T], Global> where
    T: Trace
[src]

impl Trace for AtomicUsize[src]

impl Trace for AtomicI64[src]

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

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

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

impl Trace for i8[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, E> Trace for extern "C" fn(A, B, C, D, E, ...) -> 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<A, B, C, D, E, F, G, H> Trace for (A, B, C, D, E, F, G, H) where
    C: Trace,
    E: Trace,
    B: Trace,
    A: Trace,
    F: Trace,
    D: Trace,
    H: Trace,
    G: Trace
[src]

impl Trace for AtomicIsize[src]

impl Trace for u16[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, B, C, D, E, F, G, H, I, J> Trace for (A, B, C, D, E, F, G, H, I, J) where
    C: Trace,
    E: Trace,
    B: Trace,
    I: Trace,
    A: Trace,
    F: Trace,
    D: Trace,
    H: Trace,
    G: Trace,
    J: Trace
[src]

impl Trace for i128[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> Trace for unsafe fn() -> Ret[src]

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

impl Trace for AtomicU16[src]

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

impl Trace for NonZeroI128[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<A, B, C, D, E> Trace for (A, B, C, D, E) where
    C: Trace,
    E: Trace,
    B: Trace,
    A: Trace,
    D: Trace
[src]

impl Trace for NonZeroI64[src]

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

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

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

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

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

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

impl<T> Trace for Vec<T, Global> where
    T: Trace
[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> Trace for unsafe extern "C" fn(A, B, C, ...) -> Ret[src]

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

impl Trace for bool[src]

impl Trace for u8[src]

impl<Ret, A, B, C> Trace for fn(A, B, C) -> 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 Trace for i32[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 Trace for String[src]

impl Trace for NonZeroU128[src]

impl<T> Trace for [T; 27] where
    T: Trace
[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> Trace for fn(A, B, C, D, E, F) -> Ret[src]

impl Trace for u64[src]

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

impl<T> Trace for [T; 29] where
    T: Trace
[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 Trace for AtomicI8[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<T> Trace for Box<T, Global> where
    T: Trace + ?Sized
[src]

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

impl Trace for NonZeroI16[src]

impl Trace for usize[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]

Loading content...

Implementors

impl Trace for ArrayIterationKind[src]

impl Trace for Function[src]

impl Trace for MapIterationKind[src]

impl Trace for Value[src]

impl Trace for BindingStatus[src]

impl Trace for ObjectData[src]

impl Trace for PropertyDescriptor[src]

impl Trace for PropertyKey[src]

impl Trace for Const[src]

impl Trace for MethodDefinitionKind[src]

impl Trace for Node[src]

impl Trace for PropertyDefinition[src]

impl Trace for TemplateElement[src]

impl Trace for AssignOp[src]

impl Trace for boa::syntax::ast::op::BinOp[src]

impl Trace for BitOp[src]

impl Trace for CompOp[src]

impl Trace for LogOp[src]

impl Trace for NumOp[src]

impl Trace for boa::syntax::ast::op::UnaryOp[src]

impl Trace for ArrayIterator[src]

impl Trace for BigInt[src]

impl Trace for Date[src]

impl Trace for BuiltInFunction[src]

impl Trace for FunctionFlags[src]

impl Trace for MapIterator[src]

impl Trace for ForInIterator[src]

impl Trace for RegExp[src]

impl Trace for StringIterator[src]

impl Trace for Symbol[src]

impl Trace for DeclarativeEnvironmentRecord[src]

impl Trace for DeclarativeEnvironmentRecordBinding[src]

impl Trace for FunctionEnvironmentRecord[src]

impl Trace for GlobalEnvironmentRecord[src]

impl Trace for ObjectEnvironmentRecord[src]

impl Trace for GcObject[src]

impl Trace for boa::object::Object[src]

impl Trace for AccessorDescriptor[src]

impl Trace for Attribute[src]

impl Trace for DataDescriptor[src]

impl Trace for ArrayDecl[src]

impl Trace for AwaitExpr[src]

impl Trace for Block[src]

impl Trace for Break[src]

impl Trace for Call[src]

impl Trace for ConditionalOp[src]

impl Trace for If[src]

impl Trace for ArrowFunctionDecl[src]

impl Trace for AsyncFunctionDecl[src]

impl Trace for AsyncFunctionExpr[src]

impl Trace for ConstDecl[src]

impl Trace for ConstDeclList[src]

impl Trace for FunctionDecl[src]

impl Trace for FunctionExpr[src]

impl Trace for LetDecl[src]

impl Trace for LetDeclList[src]

impl Trace for VarDecl[src]

impl Trace for VarDeclList[src]

impl Trace for GetConstField[src]

impl Trace for GetField[src]

impl Trace for Identifier[src]

impl Trace for Continue[src]

impl Trace for DoWhileLoop[src]

impl Trace for ForInLoop[src]

impl Trace for ForLoop[src]

impl Trace for ForOfLoop[src]

impl Trace for WhileLoop[src]

impl Trace for New[src]

impl Trace for boa::syntax::ast::node::object::Object[src]

impl Trace for Assign[src]

impl Trace for boa::syntax::ast::node::operator::bin_op::BinOp[src]

impl Trace for boa::syntax::ast::node::operator::unary_op::UnaryOp[src]

impl Trace for Return[src]

impl Trace for Spread[src]

impl Trace for RcStatementList[src]

impl Trace for StatementList[src]

impl Trace for FormalParameter[src]

impl Trace for Case[src]

impl Trace for Switch[src]

impl Trace for TaggedTemplate[src]

impl Trace for TemplateLit[src]

impl Trace for Throw[src]

impl Trace for Catch[src]

impl Trace for Finally[src]

impl Trace for Try[src]

impl Trace for RcBigInt[src]

impl Trace for RcString[src]

impl Trace for RcSymbol[src]

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

Loading content...