error.rs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //! SQLite Wallet Error
  2. use thiserror::Error;
  3. /// SQL Wallet Error
  4. #[derive(Debug, Error)]
  5. pub enum Error {
  6. /// SQLX Error
  7. #[error(transparent)]
  8. Sqlite(#[from] rusqlite::Error),
  9. /// Pool error
  10. #[error(transparent)]
  11. Pool(#[from] crate::pool::Error<rusqlite::Error>),
  12. /// Missing columns
  13. #[error("Not enough elements: expected {0}, got {1}")]
  14. MissingColumn(usize, usize),
  15. /// Invalid db type
  16. #[error("Invalid type from db, expected {0} got {1}")]
  17. InvalidType(String, String),
  18. /// Invalid data conversion in column
  19. #[error("Error converting {0} to {1}")]
  20. InvalidConversion(String, String),
  21. /// Serde Error
  22. #[error(transparent)]
  23. Serde(#[from] serde_json::Error),
  24. /// CDK Error
  25. #[error(transparent)]
  26. CDK(#[from] cdk_common::Error),
  27. /// NUT00 Error
  28. #[error(transparent)]
  29. CDKNUT00(#[from] cdk_common::nuts::nut00::Error),
  30. /// NUT01 Error
  31. #[error(transparent)]
  32. CDKNUT01(#[from] cdk_common::nuts::nut01::Error),
  33. /// NUT02 Error
  34. #[error(transparent)]
  35. CDKNUT02(#[from] cdk_common::nuts::nut02::Error),
  36. /// NUT04 Error
  37. #[error(transparent)]
  38. CDKNUT04(#[from] cdk_common::nuts::nut04::Error),
  39. /// NUT05 Error
  40. #[error(transparent)]
  41. CDKNUT05(#[from] cdk_common::nuts::nut05::Error),
  42. /// NUT07 Error
  43. #[error(transparent)]
  44. CDKNUT07(#[from] cdk_common::nuts::nut07::Error),
  45. /// NUT23 Error
  46. #[error(transparent)]
  47. CDKNUT23(#[from] cdk_common::nuts::nut23::Error),
  48. /// Secret Error
  49. #[error(transparent)]
  50. CDKSECRET(#[from] cdk_common::secret::Error),
  51. /// Mint Url
  52. #[error(transparent)]
  53. MintUrl(#[from] cdk_common::mint_url::Error),
  54. /// BIP32 Error
  55. #[error(transparent)]
  56. BIP32(#[from] bitcoin::bip32::Error),
  57. /// Could Not Initialize Database
  58. #[error("Could not initialize database")]
  59. CouldNotInitialize,
  60. /// Invalid Database Path
  61. #[error("Invalid database path")]
  62. InvalidDbPath,
  63. }
  64. impl From<Error> for cdk_common::database::Error {
  65. fn from(e: Error) -> Self {
  66. Self::Database(Box::new(e))
  67. }
  68. }