error.rs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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. /// Serde Json Error
  26. #[error(transparent)]
  27. Serde(#[from] serde_json::Error),
  28. /// Parse int Error
  29. #[error(transparent)]
  30. ParseInt(#[from] ParseIntError),
  31. /// CDK Database Error
  32. #[error(transparent)]
  33. CDKDatabase(#[from] cdk_common::database::Error),
  34. /// CDK Mint Url Error
  35. #[error(transparent)]
  36. CDKMintUrl(#[from] cdk_common::mint_url::Error),
  37. /// CDK Error
  38. #[error(transparent)]
  39. CDK(#[from] cdk_common::error::Error),
  40. /// NUT00 Error
  41. #[error(transparent)]
  42. CDKNUT00(#[from] cdk_common::nuts::nut00::Error),
  43. /// NUT02 Error
  44. #[error(transparent)]
  45. CDKNUT02(#[from] cdk_common::nuts::nut02::Error),
  46. /// DHKE Error
  47. #[error(transparent)]
  48. DHKE(#[from] cdk_common::dhke::Error),
  49. /// Unknown Mint Info
  50. #[error("Unknown mint info")]
  51. UnknownMintInfo,
  52. /// Unknown quote ttl
  53. #[error("Unknown quote ttl")]
  54. UnknownQuoteTTL,
  55. /// Unknown Proof Y
  56. #[error("Unknown proof Y")]
  57. UnknownY,
  58. /// Unknown Quote
  59. #[error("Unknown quote")]
  60. UnknownQuote,
  61. /// Unknown Database Version
  62. #[error("Unknown database version")]
  63. UnknownDatabaseVersion,
  64. /// Duplicate
  65. #[error("Duplicate")]
  66. Duplicate,
  67. }
  68. impl From<Error> for cdk_common::database::Error {
  69. fn from(e: Error) -> Self {
  70. Self::Database(Box::new(e))
  71. }
  72. }
  73. // Implement From for boxed redb errors
  74. impl From<redb::Error> for Error {
  75. fn from(e: redb::Error) -> Self {
  76. Self::Redb(Box::new(e))
  77. }
  78. }
  79. impl From<redb::DatabaseError> for Error {
  80. fn from(e: redb::DatabaseError) -> Self {
  81. Self::Database(Box::new(e))
  82. }
  83. }
  84. impl From<redb::TransactionError> for Error {
  85. fn from(e: redb::TransactionError) -> Self {
  86. Self::Transaction(Box::new(e))
  87. }
  88. }
  89. impl From<redb::CommitError> for Error {
  90. fn from(e: redb::CommitError) -> Self {
  91. Self::Commit(Box::new(e))
  92. }
  93. }
  94. impl From<redb::TableError> for Error {
  95. fn from(e: redb::TableError) -> Self {
  96. Self::Table(Box::new(e))
  97. }
  98. }
  99. impl From<redb::StorageError> for Error {
  100. fn from(e: redb::StorageError) -> Self {
  101. Self::Storage(Box::new(e))
  102. }
  103. }