use std::time::Duration;
use crate::checkpoint::CheckpointId;
use crate::checkpoint::TraceId;
use crate::ids::SpanId;
#[derive(Debug, Clone)]
pub enum RuntimeEvent {
ExecutionStarted {
trace_id: TraceId,
graph_name: String,
},
NodeStarted {
node_name: String,
trace_id: TraceId,
span_id: SpanId,
step: usize,
},
NodeCompleted {
node_name: String,
trace_id: TraceId,
span_id: SpanId,
duration: Duration,
},
NodeFailed {
node_name: String,
trace_id: TraceId,
span_id: SpanId,
error: String,
},
BranchStarted {
node_name: String,
branch_name: String,
span_id: SpanId,
},
BranchCompleted {
node_name: String,
branch_name: String,
span_id: SpanId,
success: bool,
duration: Duration,
},
BarrierWaiting {
barrier_id: crate::event::BarrierId,
node_name: String,
span_id: SpanId,
},
BarrierResolved { barrier_id: crate::event::BarrierId },
CheckpointCreated {
checkpoint_id: CheckpointId,
node_name: String,
step: usize,
},
ExecutionCompleted {
trace_id: TraceId,
duration: Duration,
},
}