enigma_storage/
error.rs

1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, EnigmaStorageError>;
4
5#[derive(Debug, Error)]
6pub enum EnigmaStorageError {
7    #[error("invalid key")]
8    InvalidKey,
9    #[error("crypto error: {0}")]
10    CryptoError(String),
11    #[error("aead error")]
12    AeadError,
13    #[error("backend error: {0}")]
14    BackendError(String),
15    #[error("key provider error: {0}")]
16    KeyProviderError(String),
17    #[error("kdf error: {0}")]
18    KdfError(String),
19    #[error("corrupted data")]
20    CorruptedData,
21    #[error("unsupported version")]
22    UnsupportedVersion,
23    #[error("platform unavailable: {0}")]
24    PlatformUnavailable(String),
25    #[error("permission denied")]
26    PermissionDenied,
27}
28
29impl From<sled::Error> for EnigmaStorageError {
30    fn from(value: sled::Error) -> Self {
31        EnigmaStorageError::BackendError(value.to_string())
32    }
33}
34
35impl From<argon2::Error> for EnigmaStorageError {
36    fn from(value: argon2::Error) -> Self {
37        EnigmaStorageError::KdfError(value.to_string())
38    }
39}