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}