ethsign_crypto/
error.rs

1//! Error handling module
2
3pub use crate::{aes::SymmError, scrypt::ScryptError};
4use std::fmt;
5
6/// Generic Error type for the crate
7#[derive(Debug)]
8pub enum Error {
9    /// AES encryption error
10    Aes(SymmError),
11    /// Scrypt encryption error
12    Scrypt(ScryptError),
13}
14
15impl From<SymmError> for Error {
16    fn from(err: SymmError) -> Error {
17        Error::Aes(err)
18    }
19}
20
21impl From<ScryptError> for Error {
22    fn from(err: ScryptError) -> Error {
23        Error::Scrypt(err)
24    }
25}
26
27impl fmt::Display for Error {
28    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
29        match self {
30            Error::Aes(err) => err.fmt(f),
31            Error::Scrypt(err) => err.fmt(f),
32        }
33    }
34}