lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

error.rs (1578B)


      1 use core::fmt;
      2 
      3 #[derive(Debug)]
      4 pub enum JobParseError {
      5     KindOutOfRange(u32),
      6     MissingTag(&'static str),
      7     InvalidTag(&'static str),
      8     InvalidNumber(&'static str, core::num::ParseIntError),
      9     NonWholeSats(&'static str),
     10     AmountOverflow(&'static str),
     11     MissingChainTag(&'static str),
     12 }
     13 
     14 impl fmt::Display for JobParseError {
     15     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
     16         match self {
     17             JobParseError::KindOutOfRange(kind) => {
     18                 write!(f, "Nostr event kind {kind} exceeds {}", u16::MAX)
     19             }
     20             JobParseError::MissingTag(t) => write!(f, "missing tag: {}", t),
     21             JobParseError::InvalidTag(t) => write!(f, "invalid tag structure for '{}'", t),
     22             JobParseError::InvalidNumber(t, e) => write!(f, "invalid number in '{}': {}", t, e),
     23             JobParseError::NonWholeSats(t) => {
     24                 write!(
     25                     f,
     26                     "amount in msats is not a whole number of sats for '{}'",
     27                     t
     28                 )
     29             }
     30             JobParseError::AmountOverflow(t) => {
     31                 write!(f, "amount overflow in '{}' (does not fit u32 sat)", t)
     32             }
     33             JobParseError::MissingChainTag(t) => write!(f, "missing required chain tag: {}", t),
     34         }
     35     }
     36 }
     37 
     38 #[cfg(feature = "std")]
     39 impl std::error::Error for JobParseError {
     40     fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
     41         match self {
     42             JobParseError::InvalidNumber(_, e) => Some(e),
     43             _ => None,
     44         }
     45     }
     46 }