Skip to main content

ManagedObject

Trait ManagedObject 

Source
pub trait ManagedObject {
    // Required methods
    fn trace_edges(&self, visitor: &mut dyn EdgeVisitor);
    fn clear_weak_edge(&mut self, edge: EdgeId, expected: ManagedId) -> bool;

    // Provided method
    fn clear_ephemeron_edge(
        &mut self,
        _edge: EdgeId,
        _expected_key: ManagedId,
        _expected_value: ManagedId,
    ) -> bool { ... }
}
Expand description

An object stored by ManagedArena.

Required Methods§

Source

fn trace_edges(&self, visitor: &mut dyn EdgeVisitor)

Enumerates all strong, weak, and ephemeron edges exactly once.

Source

fn clear_weak_edge(&mut self, edge: EdgeId, expected: ManagedId) -> bool

Clears one weak edge if it still points at expected.

Returning true means this invocation performed the clear. Repeating the same request must return false, giving collectors at-most-once weak-clear semantics.

Provided Methods§

Source

fn clear_ephemeron_edge( &mut self, _edge: EdgeId, _expected_key: ManagedId, _expected_value: ManagedId, ) -> bool

Clears one ephemeron entry if it still has the expected key and value. Repeating a successful request must return false.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§