cdk_redb/
error.rs

1//! Redb Error
2
3use std::num::ParseIntError;
4
5use thiserror::Error;
6
7/// Redb Database Error
8#[derive(Debug, Error)]
9pub enum Error {
10    /// Redb Error
11    #[error(transparent)]
12    Redb(#[from] Box<redb::Error>),
13    /// Redb Database Error
14    #[error(transparent)]
15    Database(#[from] Box<redb::DatabaseError>),
16    /// Redb Transaction Error
17    #[error(transparent)]
18    Transaction(#[from] Box<redb::TransactionError>),
19    /// Redb Commit Error
20    #[error(transparent)]
21    Commit(#[from] Box<redb::CommitError>),
22    /// Redb Table Error
23    #[error(transparent)]
24    Table(#[from] Box<redb::TableError>),
25    /// Redb Storage Error
26    #[error(transparent)]
27    Storage(#[from] Box<redb::StorageError>),
28    /// Serde Json Error
29    #[error(transparent)]
30    Serde(#[from] serde_json::Error),
31    /// Parse int Error
32    #[error(transparent)]
33    ParseInt(#[from] ParseIntError),
34    /// CDK Database Error
35    #[error(transparent)]
36    CDKDatabase(#[from] cdk_common::database::Error),
37    /// CDK Mint Url Error
38    #[error(transparent)]
39    CDKMintUrl(#[from] cdk_common::mint_url::Error),
40    /// CDK Error
41    #[error(transparent)]
42    CDK(#[from] cdk_common::error::Error),
43    /// NUT00 Error
44    #[error(transparent)]
45    CDKNUT00(#[from] cdk_common::nuts::nut00::Error),
46    /// NUT02 Error
47    #[error(transparent)]
48    CDKNUT02(#[from] cdk_common::nuts::nut02::Error),
49    /// DHKE Error
50    #[error(transparent)]
51    DHKE(#[from] cdk_common::dhke::Error),
52    /// Unknown Mint Info
53    #[error("Unknown mint info")]
54    UnknownMintInfo,
55    /// Unknown quote ttl
56    #[error("Unknown quote ttl")]
57    UnknownQuoteTTL,
58    /// Unknown Proof Y
59    #[error("Unknown proof Y")]
60    UnknownY,
61    /// Unknown Quote
62    #[error("Unknown quote")]
63    UnknownQuote,
64    /// Unknown Database Version
65    #[error("Unknown database version")]
66    UnknownDatabaseVersion,
67}
68
69impl From<Error> for cdk_common::database::Error {
70    fn from(e: Error) -> Self {
71        Self::Database(Box::new(e))
72    }
73}
74
75// Implement From for boxed redb errors
76impl From<redb::Error> for Error {
77    fn from(e: redb::Error) -> Self {
78        Self::Redb(Box::new(e))
79    }
80}
81
82impl From<redb::DatabaseError> for Error {
83    fn from(e: redb::DatabaseError) -> Self {
84        Self::Database(Box::new(e))
85    }
86}
87
88impl From<redb::TransactionError> for Error {
89    fn from(e: redb::TransactionError) -> Self {
90        Self::Transaction(Box::new(e))
91    }
92}
93
94impl From<redb::CommitError> for Error {
95    fn from(e: redb::CommitError) -> Self {
96        Self::Commit(Box::new(e))
97    }
98}
99
100impl From<redb::TableError> for Error {
101    fn from(e: redb::TableError) -> Self {
102        Self::Table(Box::new(e))
103    }
104}
105
106impl From<redb::StorageError> for Error {
107    fn from(e: redb::StorageError) -> Self {
108        Self::Storage(Box::new(e))
109    }
110}