1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum ChatError {
5 #[error("Database error: {0}")]
6 Database(String),
7 #[error("Rusqlite error: {0}")]
8 Rusqlite(#[from] rusqlite::Error),
9 #[error("JSON serialization error: {0}")]
10 Serde(#[from] serde_json::Error),
11 #[error("UTF-8 conversion error: {0}")]
12 Utf8(#[from] std::string::FromUtf8Error),
13 #[error("Network error: {0}")]
14 Network(String),
15}
16
17impl From<String> for ChatError {
18 fn from(s: String) -> Self {
19 ChatError::Network(s)
20 }
21}
22
23pub type ChatResult<T> = Result<T, ChatError>;