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
25pub type Result<T> = std::result::Result<T, LLMBrainError>;
27
28impl From<surrealdb::Error> for LLMBrainError {
30 fn from(err: surrealdb::Error) -> Self {
31 LLMBrainError::DatabaseError(Box::new(err))
32 }
33}