1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum Error {
5 #[error("invalid did:key: {0}")]
6 InvalidDidKey(String),
7 #[error("multibase decode error: {0}")]
8 Multibase(String),
9 #[error("ed25519 error: {0}")]
10 Ed25519(String),
11 #[error("bolt11 error: {0}")]
12 Bolt11(String),
13 #[error("jws error: {0}")]
14 Jws(String),
15 #[error("envelope error: {0}")]
16 Envelope(String),
17 #[error("token error: {0}")]
18 Token(String),
19 #[error("lightning error: {0}")]
20 Lightning(String),
21 #[error("paywall: {0}")]
22 Paywall(String),
23 #[error("fetch-with-l402: {reason}: {message}")]
24 FetchWithL402 { message: String, reason: String },
25 #[error("json error: {0}")]
26 Json(#[from] serde_json::Error),
27 #[error("http error: {0}")]
28 Http(String),
29 #[error("{0}")]
30 Other(String),
31}
32
33impl Error {
34 pub fn fetch(message: impl Into<String>, reason: impl Into<String>) -> Self {
35 Error::FetchWithL402 {
36 message: message.into(),
37 reason: reason.into(),
38 }
39 }
40}