Trait TraceRawVcs

Source
pub trait TraceRawVcs {
    // Required method
    fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext);

    // Provided method
    fn get_raw_vcs(&self) -> Vec<RawVc> { ... }
}
Expand description

Trait that allows to walk data to find all RawVcs contained.

This is important for Garbage Collection to mark all Cells and therefore Tasks that are still in use.

It can also be used to optimize transferring of Tasks, where knowning the referenced Cells/Tasks allows pushing them earlier.

#[derive(TraceRawVcs)] is available. #[trace_ignore] can be used on fields to skip tracing for them.

Required Methods§

Source

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Provided Methods§

Implementations on Foreign Types§

Source§

impl TraceRawVcs for Value

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for bool

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for char

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for f32

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for f64

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for i8

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for i16

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for i32

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for i64

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for i128

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for isize

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for str

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for u8

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for u16

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for u32

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for u64

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for u128

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for ()

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for usize

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for RcStr

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for String

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for AtomicBool

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for AtomicI8

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for AtomicI16

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for AtomicI32

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for AtomicI64

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for AtomicU8

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for AtomicU16

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for AtomicU32

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for AtomicU64

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for AtomicUsize

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for Duration

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for Path

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for PathBuf

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl TraceRawVcs for Map<String, Value>

Source§

fn trace_raw_vcs(&self, _context: &mut TraceRawVcsContext)

Source§

impl<A, Z, Y, X, W, V, U, T, Return> TraceRawVcs for fn(A, Z, Y, X, W, V, U, T) -> Return

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<A: TraceRawVcs, Z: TraceRawVcs, Y: TraceRawVcs, X: TraceRawVcs, W: TraceRawVcs, V: TraceRawVcs, U: TraceRawVcs, T: TraceRawVcs> TraceRawVcs for (A, Z, Y, X, W, V, U, T)

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<B, A, Z, Y, X, W, V, U, T, Return> TraceRawVcs for fn(B, A, Z, Y, X, W, V, U, T) -> Return

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<B: TraceRawVcs + ToOwned + ?Sized> TraceRawVcs for Cow<'_, B>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<B: TraceRawVcs, A: TraceRawVcs, Z: TraceRawVcs, Y: TraceRawVcs, X: TraceRawVcs, W: TraceRawVcs, V: TraceRawVcs, U: TraceRawVcs, T: TraceRawVcs> TraceRawVcs for (B, A, Z, Y, X, W, V, U, T)

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<C, B, A, Z, Y, X, W, V, U, T, Return> TraceRawVcs for fn(C, B, A, Z, Y, X, W, V, U, T) -> Return

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<C: TraceRawVcs, B: TraceRawVcs, A: TraceRawVcs, Z: TraceRawVcs, Y: TraceRawVcs, X: TraceRawVcs, W: TraceRawVcs, V: TraceRawVcs, U: TraceRawVcs, T: TraceRawVcs> TraceRawVcs for (C, B, A, Z, Y, X, W, V, U, T)

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<D, C, B, A, Z, Y, X, W, V, U, T, Return> TraceRawVcs for fn(D, C, B, A, Z, Y, X, W, V, U, T) -> Return

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<D: TraceRawVcs, C: TraceRawVcs, B: TraceRawVcs, A: TraceRawVcs, Z: TraceRawVcs, Y: TraceRawVcs, X: TraceRawVcs, W: TraceRawVcs, V: TraceRawVcs, U: TraceRawVcs, T: TraceRawVcs> TraceRawVcs for (D, C, B, A, Z, Y, X, W, V, U, T)

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<E, D, C, B, A, Z, Y, X, W, V, U, T, Return> TraceRawVcs for fn(E, D, C, B, A, Z, Y, X, W, V, U, T) -> Return

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<E: TraceRawVcs, D: TraceRawVcs, C: TraceRawVcs, B: TraceRawVcs, A: TraceRawVcs, Z: TraceRawVcs, Y: TraceRawVcs, X: TraceRawVcs, W: TraceRawVcs, V: TraceRawVcs, U: TraceRawVcs, T: TraceRawVcs> TraceRawVcs for (E, D, C, B, A, Z, Y, X, W, V, U, T)

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

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

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<K: TraceRawVcs, V: TraceRawVcs, S> TraceRawVcs for HashMap<K, V, S>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<K: TraceRawVcs, V: TraceRawVcs, S> TraceRawVcs for IndexMap<K, V, S>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<K: TraceRawVcs, V: TraceRawVcs, S, const I: usize> TraceRawVcs for AutoMap<K, V, S, I>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<L: TraceRawVcs, R: TraceRawVcs> TraceRawVcs for Either<L, R>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T, Return> TraceRawVcs for fn(T) -> Return

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<T: TraceRawVcs + ?Sized> TraceRawVcs for &T

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T: TraceRawVcs + ?Sized> TraceRawVcs for &mut T

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

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

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T: TraceRawVcs + ?Sized> TraceRawVcs for Arc<T>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T: TraceRawVcs + ?Sized> TraceRawVcs for RefCell<T>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T: TraceRawVcs + ?Sized> TraceRawVcs for Mutex<T>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T: TraceRawVcs> TraceRawVcs for Option<T>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T: TraceRawVcs> TraceRawVcs for (T,)

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

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

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T: TraceRawVcs> TraceRawVcs for BTreeSet<T>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T: TraceRawVcs> TraceRawVcs for Vec<T>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

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

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T: TraceRawVcs, S> TraceRawVcs for HashSet<T, S>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T: TraceRawVcs, S> TraceRawVcs for IndexSet<T, S>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T: TraceRawVcs, S, const I: usize> TraceRawVcs for AutoSet<T, S, I>

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

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

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

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

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<T: ?Sized> TraceRawVcs for PhantomData<T>

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<U, T, Return> TraceRawVcs for fn(U, T) -> Return

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<U: TraceRawVcs, T: TraceRawVcs> TraceRawVcs for (U, T)

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<V, U, T, Return> TraceRawVcs for fn(V, U, T) -> Return

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<V: TraceRawVcs, U: TraceRawVcs, T: TraceRawVcs> TraceRawVcs for (V, U, T)

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<W, V, U, T, Return> TraceRawVcs for fn(W, V, U, T) -> Return

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<W: TraceRawVcs, V: TraceRawVcs, U: TraceRawVcs, T: TraceRawVcs> TraceRawVcs for (W, V, U, T)

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<X, W, V, U, T, Return> TraceRawVcs for fn(X, W, V, U, T) -> Return

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<X: TraceRawVcs, W: TraceRawVcs, V: TraceRawVcs, U: TraceRawVcs, T: TraceRawVcs> TraceRawVcs for (X, W, V, U, T)

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<Y, X, W, V, U, T, Return> TraceRawVcs for fn(Y, X, W, V, U, T) -> Return

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<Y: TraceRawVcs, X: TraceRawVcs, W: TraceRawVcs, V: TraceRawVcs, U: TraceRawVcs, T: TraceRawVcs> TraceRawVcs for (Y, X, W, V, U, T)

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

impl<Z, Y, X, W, V, U, T, Return> TraceRawVcs for fn(Z, Y, X, W, V, U, T) -> Return

Source§

fn trace_raw_vcs(&self, _trace_context: &mut TraceRawVcsContext)

Source§

impl<Z: TraceRawVcs, Y: TraceRawVcs, X: TraceRawVcs, W: TraceRawVcs, V: TraceRawVcs, U: TraceRawVcs, T: TraceRawVcs> TraceRawVcs for (Z, Y, X, W, V, U, T)

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Implementors§