1use crate::dag::types::TaskId;
4
5#[derive(Debug, thiserror::Error)]
7pub enum DagError {
8 #[error("cycle detected in DAG involving task {0}")]
9 CycleDetected(TaskId),
10
11 #[error("unknown task referenced in dependency: {0}")]
12 UnknownTask(TaskId),
13
14 #[error("duplicate task ID: {0}")]
15 DuplicateTask(TaskId),
16
17 #[error("task failed: {0} — {1}")]
18 TaskFailed(TaskId, String),
19
20 #[error("DAG is empty — no tasks to execute")]
21 EmptyDag,
22
23 #[error("executor channel closed unexpectedly")]
24 ChannelClosed,
25
26 #[error("{0}")]
27 General(String),
28}
29
30pub type Result<T> = std::result::Result<T, DagError>;