1use std::fmt;
2
3#[derive(Debug)]
4pub enum MostroError {
5 ParsingInvoiceError,
6 ParsingNumberError,
7 InvoiceExpiredError,
8 MinExpirationTimeError,
9 MinAmountError,
10}
11
12impl std::error::Error for MostroError {}
13
14impl fmt::Display for MostroError {
15 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
16 match self {
17 MostroError::ParsingInvoiceError => write!(f, "Incorrect invoice"),
18 MostroError::ParsingNumberError => write!(f, "Error parsing the number"),
19 MostroError::InvoiceExpiredError => write!(f, "Invoice has expired"),
20 MostroError::MinExpirationTimeError => write!(f, "Minimal expiration time on invoice"),
21 MostroError::MinAmountError => write!(f, "Minimal payment amount"),
22 }
23 }
24}
25
26impl From<lightning_invoice::Bolt11ParseError> for MostroError {
27 fn from(_: lightning_invoice::Bolt11ParseError) -> Self {
28 MostroError::ParsingInvoiceError
29 }
30}
31
32impl From<lightning_invoice::ParseOrSemanticError> for MostroError {
33 fn from(_: lightning_invoice::ParseOrSemanticError) -> Self {
34 MostroError::ParsingInvoiceError
35 }
36}
37
38impl From<std::num::ParseIntError> for MostroError {
39 fn from(_: std::num::ParseIntError) -> Self {
40 MostroError::ParsingNumberError
41 }
42}