use crate::graph::command::Interrupt;
use crate::harness::ids::{CheckpointId, NodeId};
#[derive(Clone, Debug)]
pub enum GraphEvent {
StepStarted {
step: usize,
active: Vec<NodeId>,
},
StepCompleted {
step: usize,
},
TaskScheduled {
node: NodeId,
step: usize,
},
NodeStarted {
node: NodeId,
step: usize,
},
NodeCompleted {
node: NodeId,
step: usize,
},
NodeFailed {
node: NodeId,
step: usize,
error: String,
},
StateUpdated {
node: NodeId,
step: usize,
},
RouteSelected {
node: NodeId,
target: NodeId,
},
CheckpointSaved {
checkpoint_id: CheckpointId,
},
InterruptEmitted {
interrupt: Interrupt,
},
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum StreamMode {
Values,
Updates,
Messages,
Debug,
Interrupts,
Custom,
}