Trait Trace

Source
pub trait Trace: Sized {
    // Provided methods
    fn trace(&self, vis: &mut Visitor) { ... }
    extern "C" fn trace_(vis: *mut Visitor, this: *const u8) { ... }
    fn get_trace_descriptor(this: *const u8) -> TraceDescriptor { ... }
}
Expand description

Trait specifying how the garbage collector processes an object of type T.

Provided Methods§

Source

fn trace(&self, vis: &mut Visitor)

Function invoking the tracing for an object of type T.

  • visitor: The visitor to dispatch to.
Examples found in repository?
examples/simple.rs (line 15)
13    fn trace(&self, vis: &mut Visitor) {
14        println!("Trace {:p} {:?}",self,self);
15        self.value.trace(vis);
16        self.next.trace(vis);
17    }
Source

extern "C" fn trace_(vis: *mut Visitor, this: *const u8)

trace_ method is used for C FFI safety.

Source

fn get_trace_descriptor(this: *const u8) -> TraceDescriptor

Returns trace descriptor for type that implements this trait. Not recommended to override it.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl TraceTrait for bool

Source§

impl TraceTrait for f32

Source§

impl TraceTrait for f64

Source§

impl TraceTrait for i8

Source§

impl TraceTrait for i16

Source§

impl TraceTrait for i32

Source§

impl TraceTrait for i64

Source§

impl TraceTrait for i128

Source§

impl TraceTrait for isize

Source§

impl TraceTrait for u8

Source§

impl TraceTrait for u16

Source§

impl TraceTrait for u32

Source§

impl TraceTrait for u64

Source§

impl TraceTrait for u128

Source§

impl TraceTrait for usize

Source§

impl TraceTrait for String

Source§

impl TraceTrait for File

Source§

impl TraceTrait for PathBuf

Source§

impl<K, V> TraceTrait for HashMap<K, V>
where K: TraceTrait, V: TraceTrait,

Source§

fn trace(&self, vis: &mut Visitor)

Source§

impl<T> TraceTrait for Option<T>
where T: TraceTrait,

Source§

fn trace(&self, vis: &mut Visitor)

Source§

impl<T> TraceTrait for Vec<T>
where T: TraceTrait,

Source§

fn trace(&self, vis: &mut Visitor)

Source§

impl<T, E> TraceTrait for Result<T, E>
where T: TraceTrait, E: TraceTrait,

Source§

fn trace(&self, vis: &mut Visitor)

Implementors§