modern_crypto_toolkit/
error.rs1use std::fmt;
2
3#[derive(Debug)]
5pub enum Error {
6 UnsupportedAlgorithm(String),
8 InvalidKey(String),
10 Decryption(String),
12 Signature(String),
14 InvalidHashFormat(String),
16 Base64(String),
18 Hex(String),
20 Random(String),
22 InvalidParameter(String),
24 Internal(String),
26}
27
28impl fmt::Display for Error {
29 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
30 match self {
31 Error::UnsupportedAlgorithm(msg) => write!(f, "unsupported or insecure algorithm: {msg}"),
32 Error::InvalidKey(msg) => write!(f, "invalid key: {msg}"),
33 Error::Decryption(msg) => write!(f, "decryption failed: {msg}"),
34 Error::Signature(msg) => write!(f, "signature failed: {msg}"),
35 Error::InvalidHashFormat(msg) => write!(f, "invalid hash format: {msg}"),
36 Error::Base64(msg) => write!(f, "base64 error: {msg}"),
37 Error::Hex(msg) => write!(f, "hex error: {msg}"),
38 Error::Random(msg) => write!(f, "random error: {msg}"),
39 Error::InvalidParameter(msg) => write!(f, "invalid parameter: {msg}"),
40 Error::Internal(msg) => write!(f, "internal error: {msg}"),
41 }
42 }
43}
44
45impl std::error::Error for Error {}
46
47pub type Result<T> = std::result::Result<T, Error>;