mostro_client/
error.rs

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}