kaccy_db/
error.rs

1//! Database error types
2
3use thiserror::Error;
4
5#[derive(Error, Debug)]
6pub enum DbError {
7    #[error("Database error: {0}")]
8    Sqlx(#[from] sqlx::Error),
9
10    #[error("Not found: {0}")]
11    NotFound(String),
12
13    #[error("Duplicate: {0}")]
14    Duplicate(String),
15
16    #[error("Pool error: {0}")]
17    Pool(String),
18
19    #[error("Connection error: {0}")]
20    Connection(String),
21
22    #[error("Cache error: {0}")]
23    Cache(String),
24
25    #[error("Query error: {0}")]
26    Query(String),
27
28    #[error("Validation error: {0}")]
29    Validation(String),
30
31    #[error("{0}")]
32    Other(String),
33}
34
35impl From<crate::pool::PoolError> for DbError {
36    fn from(err: crate::pool::PoolError) -> Self {
37        DbError::Pool(err.to_string())
38    }
39}
40
41pub type Result<T> = std::result::Result<T, DbError>;