error.rs 3.1 KB

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