datastack/
errors.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum DataStackError {
5
6    #[error("Database open error: {0}")]
7    Database(#[from] redb::DatabaseError),
8
9    #[error("General database error: {0}")]
10    Redb(#[from] redb::Error),
11    
12    #[error("Transaction error: {0}")]
13    Transaction(#[from] redb::TransactionError),
14
15    #[error("Table error: {0}")]
16    Table(#[from] redb::TableError),
17
18    #[error("Storage error: {0}")]
19    Storage(#[from] redb::StorageError),
20
21    #[error("Commit error: {0}")]
22    Commit(#[from] redb::CommitError),
23
24    #[error("Bincode error: {0}")]
25    Bincode(#[from] Box<bincode::ErrorKind>),
26
27    #[error("Serde JSON error: {0}")]
28    SerdeJson(#[from] serde_json::Error),
29
30    #[error("Invalid update: {0}")]
31    InvalidUpdate(String),
32
33    #[error("IO error: {0}")]
34    Io(#[from] std::io::Error),
35}