meerkat_workgraph/
error.rs1use crate::types::{WorkItemId, WorkNamespace};
2
3#[derive(Debug, thiserror::Error)]
4pub enum WorkGraphError {
5 #[error("work item {id} not found in realm '{realm_id}' namespace '{namespace}'")]
6 NotFound {
7 realm_id: String,
8 namespace: WorkNamespace,
9 id: WorkItemId,
10 },
11 #[error("stale work item revision for {id}: expected {expected}, actual {actual}")]
12 StaleRevision {
13 id: WorkItemId,
14 expected: u64,
15 actual: u64,
16 },
17 #[error("conflicting work graph mutation: {0}")]
18 Conflict(String),
19 #[error("invalid work graph transition: {0}")]
20 InvalidTransition(String),
21 #[error("invalid work graph input: {0}")]
22 InvalidInput(String),
23 #[error("work graph store error: {0}")]
24 Store(String),
25 #[error("work graph backend '{0}' does not support this operation")]
26 UnsupportedBackend(String),
27}
28
29impl WorkGraphError {
30 pub fn not_found(realm_id: String, namespace: WorkNamespace, id: WorkItemId) -> Self {
31 Self::NotFound {
32 realm_id,
33 namespace,
34 id,
35 }
36 }
37}