use thiserror::Error;
pub type Result<T> = std::result::Result<T, EnigmaStorageError>;
#[derive(Debug, Error)]
pub enum EnigmaStorageError {
#[error("invalid key")]
InvalidKey,
#[error("crypto error: {0}")]
CryptoError(String),
#[error("aead error")]
AeadError,
#[error("backend error: {0}")]
BackendError(String),
#[error("key provider error: {0}")]
KeyProviderError(String),
#[error("kdf error: {0}")]
KdfError(String),
#[error("corrupted data")]
CorruptedData,
#[error("unsupported version")]
UnsupportedVersion,
#[error("platform unavailable: {0}")]
PlatformUnavailable(String),
#[error("permission denied")]
PermissionDenied,
}
impl From<sled::Error> for EnigmaStorageError {
fn from(value: sled::Error) -> Self {
EnigmaStorageError::BackendError(value.to_string())
}
}
impl From<argon2::Error> for EnigmaStorageError {
fn from(value: argon2::Error) -> Self {
EnigmaStorageError::KdfError(value.to_string())
}
}