1use std::fmt;
2
3#[derive(Debug, Clone, PartialEq, Eq)]
5pub enum EffectError {
6 Cancelled,
7 Timeout,
8 RetryExhausted,
9 EnvMissing(&'static str),
10 TaskFailed(&'static str),
11 Other(String),
12}
13
14impl fmt::Display for EffectError {
15 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
16 match self {
17 Self::Cancelled => write!(f, "effect cancelled"),
18 Self::Timeout => write!(f, "effect timed out"),
19 Self::RetryExhausted => write!(f, "retry attempts exhausted"),
20 Self::EnvMissing(name) => write!(f, "missing environment dependency: {name}"),
21 Self::TaskFailed(msg) => write!(f, "task failed: {msg}"),
22 Self::Other(msg) => write!(f, "{msg}"),
23 }
24 }
25}
26
27impl std::error::Error for EffectError {}