Skip to main content

CalcObserver

Trait CalcObserver 

Source
pub trait CalcObserver: Send + Sync {
    // Required methods
    fn on_eval_start(&self, vertex_id: VertexId);
    fn on_eval_complete(&self, vertex_id: VertexId, duration: Duration);
    fn on_cycle_detected(&self, cycle: &[VertexId]);
    fn on_dirty_propagation(&self, vertex_id: VertexId, affected_count: usize);
}
Expand description

Scalability hook reserved for calculation observability. No engine registration or invocation path currently delivers these notifications. Future delivery must catch observer panics and drop that notification without affecting values, completeness diagnostics or engine poison.

Required Methods§

Source

fn on_eval_start(&self, vertex_id: VertexId)

Source

fn on_eval_complete(&self, vertex_id: VertexId, duration: Duration)

Source

fn on_cycle_detected(&self, cycle: &[VertexId])

Source

fn on_dirty_propagation(&self, vertex_id: VertexId, affected_count: usize)

Dyn Compatibility§

This trait is dyn compatible.

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

Implementations on Foreign Types§

Source§

impl CalcObserver for ()

Default no-op observer

Source§

fn on_eval_start(&self, _vertex_id: VertexId)

Source§

fn on_eval_complete(&self, _vertex_id: VertexId, _duration: Duration)

Source§

fn on_cycle_detected(&self, _cycle: &[VertexId])

Source§

fn on_dirty_propagation(&self, _vertex_id: VertexId, _affected_count: usize)

Implementors§