Skip to main content

imp_core/
error.rs

1#[derive(Debug, thiserror::Error)]
2pub enum Error {
3    #[error("LLM error: {0}")]
4    Llm(#[from] imp_llm::Error),
5
6    #[error("Tool error: {0}")]
7    Tool(String),
8
9    #[error("Session error: {0}")]
10    Session(String),
11
12    #[error("Config error: {0}")]
13    Config(String),
14
15    #[error("Hook error: {0}")]
16    Hook(String),
17
18    #[error("IO error: {0}")]
19    Io(#[from] std::io::Error),
20
21    #[error("JSON error: {0}")]
22    Json(#[from] serde_json::Error),
23
24    #[error("TOML parse error: {0}")]
25    Toml(#[from] toml::de::Error),
26
27    #[error("SQLite error: {0}")]
28    Sqlite(#[from] rusqlite::Error),
29
30    #[error("Max turns exceeded: {0}")]
31    MaxTurns(u32),
32
33    #[error("Cancelled")]
34    Cancelled,
35}
36
37pub type Result<T> = std::result::Result<T, Error>;