use thiserror::Error;
#[derive(Debug, Error)]
pub enum StorageError {
#[error("validation error: {0}")]
Validation(String),
#[error("not found: {0}")]
NotFound(String),
#[error("already exists: {0}")]
AlreadyExists(String),
#[error("version conflict: expected {expected}, actual {actual}")]
VersionConflict {
expected: u64,
actual: u64,
},
#[error("pending selection conflict: expected {expected_ids:?}, actual {actual_ids:?}")]
PendingSelectionConflict {
expected_ids: Vec<String>,
actual_ids: Vec<String>,
},
#[error("io error: {0}")]
Io(String),
#[error("commit outcome unknown: {0}")]
CommitUnknown(String),
#[error("serialization error: {0}")]
Serialization(String),
}