pub struct ChannelInterceptor { /* private fields */ }Expand description
A BspInterceptor that forwards every event onto a tokio::sync::broadcast
channel — every GUI / CLI / TUI then just subscribes.
Send failures (no active receivers, or a lagging receiver) are ignored by design: telemetry must never backpressure the scheduler.
Implementations§
Trait Implementations§
Source§impl BspInterceptor for ChannelInterceptor
Available on crate feature tokio only.
impl BspInterceptor for ChannelInterceptor
Available on crate feature
tokio only.Source§fn on_superstep_start(&self, step: u64, frontier: &[NodeId])
fn on_superstep_start(&self, step: u64, frontier: &[NodeId])
A superstep is about to execute the given frontier.
Source§fn on_node_start(&self, node_id: NodeId, name: &str)
fn on_node_start(&self, node_id: NodeId, name: &str)
A node began executing.
Source§fn on_node_complete(&self, node_id: NodeId, name: &str, duration: Duration)
fn on_node_complete(&self, node_id: NodeId, name: &str, duration: Duration)
A node finished executing (including skip-bypassed executions, which report a
zero duration).
Source§fn on_node_error(&self, node_id: NodeId, name: &str, err: &BspError)
fn on_node_error(&self, node_id: NodeId, name: &str, err: &BspError)
A node’s failure is propagating (after any retries were exhausted or classified
fatal). Also fires when the failure is routed to an error edge.
Source§fn on_node_retry(
&self,
node_id: NodeId,
attempt: u32,
wait: Duration,
err: &BspError,
)
fn on_node_retry( &self, node_id: NodeId, attempt: u32, wait: Duration, err: &BspError, )
A node failure was classified transient; the engine will re-execute after
wait.
attempt is the 1-based retry number.Source§fn on_edge_taken(&self, source: NodeId, target: NodeId, condition_label: &str)
fn on_edge_taken(&self, source: NodeId, target: NodeId, condition_label: &str)
An edge fired: its condition matched and a token was emitted toward
target.
This is what makes a GUI alive — highlight the active edge.Source§fn on_loop_iteration(&self, edge: EdgeId, iteration: u64, max: Option<u64>)
fn on_loop_iteration(&self, edge: EdgeId, iteration: u64, max: Option<u64>)
A budgeted edge fired against its iteration cap — badge the loop counter.
Source§fn on_suspended(&self, suspensions: &[PendingSuspension])
fn on_suspended(&self, suspensions: &[PendingSuspension])
One or more nodes requested suspension; the run is pausing.
Source§fn on_complete(&self, steps: u64)
fn on_complete(&self, steps: u64)
The run completed naturally after
steps supersteps.Auto Trait Implementations§
impl Freeze for ChannelInterceptor
impl RefUnwindSafe for ChannelInterceptor
impl Send for ChannelInterceptor
impl Sync for ChannelInterceptor
impl Unpin for ChannelInterceptor
impl UnsafeUnpin for ChannelInterceptor
impl UnwindSafe for ChannelInterceptor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more