improve: use thiserror

This commit is contained in:
thesimplekid
2023-11-10 18:44:57 +00:00
parent f85df7316f
commit 660c767df4
2 changed files with 9 additions and 30 deletions

View File

@@ -27,6 +27,7 @@ url = { workspace = true }
tracing = { workspace = true }
futures-util = { version = "0.3", default-features = false, features = ["sink", "std"] }
once_cell = { version = "1.17", optional = true }
thiserror = { workspace = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { workspace = true, features = ["rt-multi-thread", "time", "macros", "sync"] }

View File

@@ -1,6 +1,4 @@
//! Cashu Wallet
use std::error::Error as StdError;
use std::fmt;
use std::str::FromStr;
use cashu::dhke::{construct_proofs, unblind_message};
@@ -14,6 +12,7 @@ use cashu::Amount;
pub use cashu::Bolt11Invoice;
#[cfg(feature = "nut07")]
use cashu::{nuts::nut00::mint, types::ProofsStatus};
use thiserror::Error;
use tracing::warn;
#[cfg(feature = "blocking")]
@@ -21,40 +20,19 @@ use crate::client::blocking::Client;
#[cfg(not(feature = "blocking"))]
use crate::client::Client;
#[derive(Debug)]
#[derive(Debug, Error)]
pub enum Error {
/// Insufficient Funds
#[error("Insuddicient Funds")]
InsufficientFunds,
Cashu(cashu::error::wallet::Error),
Client(crate::client::Error),
#[error("`{0}`")]
Cashu(#[from] cashu::error::wallet::Error),
#[error("`{0}`")]
Client(#[from] crate::client::Error),
#[error("`{0}`")]
Custom(String),
}
impl StdError for Error {}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Error::InsufficientFunds => write!(f, "Insufficient Funds"),
Error::Cashu(err) => write!(f, "{}", err),
Error::Client(err) => write!(f, "{}", err),
Error::Custom(err) => write!(f, "{}", err),
}
}
}
impl From<cashu::error::wallet::Error> for Error {
fn from(err: cashu::error::wallet::Error) -> Self {
Self::Cashu(err)
}
}
impl From<crate::client::Error> for Error {
fn from(err: crate::client::Error) -> Error {
Error::Client(err)
}
}
#[derive(Clone, Debug)]
pub struct Wallet {
pub client: Client,