//! Redb Error use std::num::ParseIntError; use thiserror::Error; /// Redb Database Error #[derive(Debug, Error)] pub enum Error { /// Redb Error #[error(transparent)] Redb(#[from] Box), /// Redb Database Error #[error(transparent)] Database(#[from] Box), /// Redb Transaction Error #[error(transparent)] Transaction(#[from] Box), /// Redb Commit Error #[error(transparent)] Commit(#[from] Box), /// Redb Table Error #[error(transparent)] Table(#[from] Box), /// Redb Storage Error #[error(transparent)] Storage(#[from] Box), /// Serde Json Error #[error(transparent)] Serde(#[from] serde_json::Error), /// Parse int Error #[error(transparent)] ParseInt(#[from] ParseIntError), /// CDK Database Error #[error(transparent)] CDKDatabase(#[from] cdk_common::database::Error), /// CDK Mint Url Error #[error(transparent)] CDKMintUrl(#[from] cdk_common::mint_url::Error), /// CDK Error #[error(transparent)] CDK(#[from] cdk_common::error::Error), /// NUT00 Error #[error(transparent)] CDKNUT00(#[from] cdk_common::nuts::nut00::Error), /// NUT02 Error #[error(transparent)] CDKNUT02(#[from] cdk_common::nuts::nut02::Error), /// DHKE Error #[error(transparent)] DHKE(#[from] cdk_common::dhke::Error), /// Unknown Mint Info #[error("Unknown mint info")] UnknownMintInfo, /// Unknown quote ttl #[error("Unknown quote ttl")] UnknownQuoteTTL, /// Unknown Proof Y #[error("Unknown proof Y")] UnknownY, /// Unknown Quote #[error("Unknown quote")] UnknownQuote, /// Unknown Database Version #[error("Unknown database version")] UnknownDatabaseVersion, } impl From for cdk_common::database::Error { fn from(e: Error) -> Self { Self::Database(Box::new(e)) } } // Implement From for boxed redb errors impl From for Error { fn from(e: redb::Error) -> Self { Self::Redb(Box::new(e)) } } impl From for Error { fn from(e: redb::DatabaseError) -> Self { Self::Database(Box::new(e)) } } impl From for Error { fn from(e: redb::TransactionError) -> Self { Self::Transaction(Box::new(e)) } } impl From for Error { fn from(e: redb::CommitError) -> Self { Self::Commit(Box::new(e)) } } impl From for Error { fn from(e: redb::TableError) -> Self { Self::Table(Box::new(e)) } } impl From for Error { fn from(e: redb::StorageError) -> Self { Self::Storage(Box::new(e)) } }