1use thiserror::Error;
4
5pub type Result<T> = std::result::Result<T, BosonError>;
7
8#[derive(Debug, Error)]
10pub enum BosonError {
11 #[error("task not found: {0}")]
13 TaskNotFound(String),
14
15 #[error("job not found: {0}")]
17 JobNotFound(String),
18
19 #[error("run not found: {0}")]
21 RunNotFound(String),
22
23 #[error("task config not found: {0}")]
25 TaskConfigNotFound(String),
26
27 #[error("parameter error: {0}")]
29 ParamError(String),
30
31 #[error("signature mismatch: job expects {expected}, task has {actual}")]
33 SignatureMismatch {
34 expected: String,
36 actual: String,
38 },
39
40 #[error("invalid config: {0}")]
42 InvalidConfig(String),
43
44 #[error("backend error: {0}")]
46 Backend(String),
47
48 #[error("internal error: {0}")]
50 Internal(String),
51
52 #[error("enqueue rate limited for task: {0}")]
54 RateLimited(String),
55
56 #[error("unknown queue backend: {0}")]
58 UnknownBackend(String),
59}
60
61#[derive(Debug, Error)]
63pub enum IdentityError {
64 #[error("invalid actor: {0}")]
66 InvalidActor(String),
67}
68
69impl From<serde_json::Error> for BosonError {
70 fn from(err: serde_json::Error) -> Self {
71 Self::ParamError(err.to_string())
72 }
73}