use sos_core::commit::CommitHash;
use thiserror::Error;
use uuid::Uuid;
#[derive(Debug, Error)]
pub enum Error {
#[error("row '{id}' checksums do not match, expected {commit} but got {value}")]
VaultHashMismatch {
commit: CommitHash,
value: CommitHash,
id: Uuid,
},
#[error("row checksums do not match, expected {commit} but got {value}")]
HashMismatch {
commit: CommitHash,
value: CommitHash,
},
#[error(transparent)]
TryFromSlice(#[from] std::array::TryFromSliceError),
#[error(transparent)]
Core(#[from] sos_core::Error),
#[error(transparent)]
Backend(#[from] sos_backend::Error),
#[error(transparent)]
Vault(#[from] sos_vault::Error),
#[error(transparent)]
FileSystem(#[from] sos_filesystem::Error),
#[error(transparent)]
Database(#[from] sos_database::Error),
#[error(transparent)]
AsyncSqlite(#[from] sos_database::async_sqlite::Error),
#[error(transparent)]
Sqlite(#[from] sos_database::async_sqlite::rusqlite::Error),
#[error(transparent)]
Io(#[from] std::io::Error),
#[error(transparent)]
Uuid(#[from] uuid::Error),
#[error(transparent)]
Join(#[from] tokio::task::JoinError),
}