1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum DatabaseError {
5 #[error("Query failed: {0}")]
6 QueryFailed(String),
7
8 #[error("Transaction failed: {0}")]
9 TransactionFailed(String),
10
11 #[error("Pool error: {0}")]
12 PoolError(String),
13}
14
15impl From<sqlx::Error> for DatabaseError {
16 fn from(err: sqlx::Error) -> Self {
17 match err {
18 sqlx::Error::PoolTimedOut => DatabaseError::PoolError("Pool timed out".to_string()),
19 _ => DatabaseError::QueryFailed(err.to_string()),
20 }
21 }
22}