aescrypt_rs/error.rs
1// ============================================================================
2// FILE: src/error.rs
3// ============================================================================
4
5//! Custom error type for the AES Crypt library.
6
7use thiserror::Error;
8
9#[derive(Error, Debug)]
10pub enum AescryptError {
11 #[error("I/O error: {0}")]
12 Io(#[from] std::io::Error),
13
14 #[error("Crypto error: {0}")]
15 Crypto(String),
16
17 #[error("Header error: {0}")]
18 Header(String),
19
20 #[error("Unsupported version: {0}")]
21 UnsupportedVersion(u8),
22}
23
24impl From<&'static str> for AescryptError {
25 fn from(msg: &'static str) -> Self {
26 AescryptError::Crypto(msg.to_string())
27 }
28}