lib

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

error.rs (1890B)


      1 use alloc::string::String;
      2 use thiserror::Error;
      3 
      4 #[derive(Debug, Error)]
      5 pub enum NetError {
      6     #[error("{0}")]
      7     Msg(String),
      8 
      9     #[error("mutex lock poisoned")]
     10     Poisoned,
     11 
     12     #[cfg(feature = "std")]
     13     #[error("I/O error: {0}")]
     14     Io(#[from] std::io::Error),
     15 
     16     #[error("missing key")]
     17     MissingKey,
     18 
     19     #[error("invalid hex32")]
     20     InvalidHex32,
     21 
     22     #[error("invalid bech32")]
     23     InvalidBech32,
     24 
     25     #[error("invalid key file")]
     26     InvalidKeyFile,
     27 
     28     #[error("key I/O")]
     29     KeyIo,
     30 
     31     #[error("overwrite denied")]
     32     OverwriteDenied,
     33 
     34     #[error("persistence path required")]
     35     PersistencePathRequired,
     36 
     37     #[error("persistence unsupported")]
     38     PersistenceUnsupported,
     39 
     40     #[error("logging init failed: {0}")]
     41     LoggingInit(&'static str),
     42 }
     43 
     44 impl NetError {
     45     pub fn msg<M: Into<String>>(msg: M) -> Self {
     46         NetError::Msg(msg.into())
     47     }
     48 }
     49 
     50 impl Clone for NetError {
     51     fn clone(&self) -> Self {
     52         match self {
     53             NetError::Msg(m) => NetError::Msg(m.clone()),
     54             NetError::Poisoned => NetError::Poisoned,
     55             #[cfg(feature = "std")]
     56             NetError::Io(_) => {
     57                 panic!("cannot clone std::io::Error");
     58             }
     59             NetError::MissingKey => NetError::MissingKey,
     60             NetError::InvalidHex32 => NetError::InvalidHex32,
     61             NetError::InvalidBech32 => NetError::InvalidBech32,
     62             NetError::InvalidKeyFile => NetError::InvalidKeyFile,
     63             NetError::KeyIo => NetError::KeyIo,
     64             NetError::OverwriteDenied => NetError::OverwriteDenied,
     65             NetError::PersistencePathRequired => NetError::PersistencePathRequired,
     66             NetError::PersistenceUnsupported => NetError::PersistenceUnsupported,
     67             NetError::LoggingInit(s) => NetError::LoggingInit(s),
     68         }
     69     }
     70 }
     71 
     72 pub type Result<T> = core::result::Result<T, NetError>;