use thiserror::Error;
#[derive(Error, Debug)]
pub enum VaultError {
#[error("KDF error: {0}")]
Kdf(String),
#[error("Crypto error: {0}")]
Crypto(String),
#[error("Tampered entry detected (GCM MAC mismatch)")]
Tampered,
#[error("Volume limit exceeded: {max}")]
VolumeLimitExceeded {
max: usize
},
#[error("Document not found: {0}")]
DocNotFound(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("Storage error: {0}")]
StorageError(String),
#[error("Serialization error: {0}")]
Serialization(#[from] bincode::Error),
}