Skip to main content

deck_core/
error.rs

1//! Crate-wide error type. Libraries use `thiserror` for typed errors; the
2//! binary crate uses `anyhow` for application-level chaining.
3
4use thiserror::Error;
5
6#[derive(Debug, Error)]
7pub enum DeckError {
8    #[error("config: {0}")]
9    Config(String),
10
11    #[error("llm backend: {0}")]
12    Llm(String),
13
14    #[error("mcp: {0}")]
15    Mcp(String),
16
17    #[error("store: {0}")]
18    Store(String),
19
20    #[error("sandbox: {0}")]
21    Sandbox(String),
22
23    #[error("orchestrator: {0}")]
24    Orchestrator(String),
25
26    #[error("io: {0}")]
27    Io(#[from] std::io::Error),
28
29    #[error("serialization: {0}")]
30    Serde(#[from] serde_json::Error),
31}
32
33pub type Result<T, E = DeckError> = std::result::Result<T, E>;