1#[derive(Debug, thiserror::Error)]
5pub enum Error {
6 #[error("slot not found: {0}")]
8 SlotNotFound(String),
9
10 #[error("task not found: {0}")]
12 TaskNotFound(String),
13
14 #[error("no slot available after waiting {timeout_secs}s")]
16 NoSlotAvailable { timeout_secs: u64 },
17
18 #[error("pool is shut down")]
20 PoolShutdown,
21
22 #[error("budget exhausted: spent {spent_microdollars} of {limit_microdollars} microdollars")]
24 BudgetExhausted {
25 spent_microdollars: u64,
27 limit_microdollars: u64,
29 },
30
31 #[error("claude-wrapper error: {0}")]
33 Wrapper(#[from] claude_wrapper::Error),
34
35 #[error("json error: {0}")]
37 Json(#[from] serde_json::Error),
38
39 #[error("store error: {0}")]
41 Store(String),
42}
43
44pub type Result<T> = std::result::Result<T, Error>;