1use std::num::ParseIntError;
4
5use thiserror::Error;
6
7#[derive(Debug, Error)]
9pub enum Error {
10 #[error(transparent)]
12 Redb(#[from] Box<redb::Error>),
13 #[error(transparent)]
15 Database(#[from] Box<redb::DatabaseError>),
16 #[error(transparent)]
18 Transaction(#[from] Box<redb::TransactionError>),
19 #[error(transparent)]
21 Commit(#[from] Box<redb::CommitError>),
22 #[error(transparent)]
24 Table(#[from] Box<redb::TableError>),
25 #[error(transparent)]
27 Storage(#[from] Box<redb::StorageError>),
28 #[error(transparent)]
30 Upgrade(#[from] Box<redb::UpgradeError>),
31 #[error(transparent)]
33 Serde(#[from] serde_json::Error),
34 #[error(transparent)]
36 ParseInt(#[from] ParseIntError),
37 #[error(transparent)]
39 CDKDatabase(#[from] cdk_common::database::Error),
40 #[error(transparent)]
42 CDKMintUrl(#[from] cdk_common::mint_url::Error),
43 #[error(transparent)]
45 CDK(#[from] cdk_common::error::Error),
46 #[error(transparent)]
48 Io(#[from] std::io::Error),
49 #[error(transparent)]
51 CDKNUT00(#[from] cdk_common::nuts::nut00::Error),
52 #[error(transparent)]
54 CDKNUT02(#[from] cdk_common::nuts::nut02::Error),
55 #[error(transparent)]
57 DHKE(#[from] cdk_common::dhke::Error),
58 #[error("Unknown mint info")]
60 UnknownMintInfo,
61 #[error("Unknown quote ttl")]
63 UnknownQuoteTTL,
64 #[error("Unknown proof Y")]
66 UnknownY,
67 #[error("Unknown quote")]
69 UnknownQuote,
70 #[error("Unknown database version")]
72 UnknownDatabaseVersion,
73 #[error("Duplicate")]
75 Duplicate,
76}
77
78impl From<Error> for cdk_common::database::Error {
79 fn from(e: Error) -> Self {
80 Self::Database(Box::new(e))
81 }
82}
83
84impl From<redb::Error> for Error {
86 fn from(e: redb::Error) -> Self {
87 Self::Redb(Box::new(e))
88 }
89}
90
91impl From<redb::DatabaseError> for Error {
92 fn from(e: redb::DatabaseError) -> Self {
93 Self::Database(Box::new(e))
94 }
95}
96
97impl From<redb::TransactionError> for Error {
98 fn from(e: redb::TransactionError) -> Self {
99 Self::Transaction(Box::new(e))
100 }
101}
102
103impl From<redb::CommitError> for Error {
104 fn from(e: redb::CommitError) -> Self {
105 Self::Commit(Box::new(e))
106 }
107}
108
109impl From<redb::TableError> for Error {
110 fn from(e: redb::TableError) -> Self {
111 Self::Table(Box::new(e))
112 }
113}
114
115impl From<redb::StorageError> for Error {
116 fn from(e: redb::StorageError) -> Self {
117 Self::Storage(Box::new(e))
118 }
119}
120
121impl From<redb::UpgradeError> for Error {
122 fn from(e: redb::UpgradeError) -> Self {
123 Self::Upgrade(Box::new(e))
124 }
125}