mostro_client/
error.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use std::fmt;

#[derive(Debug)]
pub enum MostroError {
    ParsingInvoiceError,
    ParsingNumberError,
    InvoiceExpiredError,
    MinExpirationTimeError,
    MinAmountError,
}

impl std::error::Error for MostroError {}

impl fmt::Display for MostroError {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        match self {
            MostroError::ParsingInvoiceError => write!(f, "Incorrect invoice"),
            MostroError::ParsingNumberError => write!(f, "Error parsing the number"),
            MostroError::InvoiceExpiredError => write!(f, "Invoice has expired"),
            MostroError::MinExpirationTimeError => write!(f, "Minimal expiration time on invoice"),
            MostroError::MinAmountError => write!(f, "Minimal payment amount"),
        }
    }
}

impl From<lightning_invoice::ParseError> for MostroError {
    fn from(_: lightning_invoice::ParseError) -> Self {
        MostroError::ParsingInvoiceError
    }
}

impl From<lightning_invoice::ParseOrSemanticError> for MostroError {
    fn from(_: lightning_invoice::ParseOrSemanticError) -> Self {
        MostroError::ParsingInvoiceError
    }
}

impl From<std::num::ParseIntError> for MostroError {
    fn from(_: std::num::ParseIntError) -> Self {
        MostroError::ParsingNumberError
    }
}