llm_brain/
error.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum LLMBrainError {
5    #[error("Database error: {0}")]
6    DatabaseError(#[from] Box<surrealdb::Error>),
7    #[error("Configuration error: {0}")]
8    ConfigError(String),
9    #[error("IO error: {0}")]
10    IoError(#[from] std::io::Error),
11    #[error("External API error: {0}")]
12    ApiError(String),
13    #[error("Serialization error: {0}")]
14    SerializationError(#[from] serde_json::Error),
15    #[error("Initialization error: {0}")]
16    InitializationError(String),
17    #[error("Not found: {0}")]
18    NotFoundError(String),
19    #[error("Input error: {0}")]
20    InputError(String),
21    #[error("Unknown error: {0}")]
22    Unknown(#[from] anyhow::Error),
23}
24
25// Library Result type alias
26pub type Result<T> = std::result::Result<T, LLMBrainError>;
27
28// Helper to convert SurrealDB errors
29impl From<surrealdb::Error> for LLMBrainError {
30    fn from(err: surrealdb::Error) -> Self {
31        LLMBrainError::DatabaseError(Box::new(err))
32    }
33}