1use sos_core::commit::CommitHash;
2use thiserror::Error;
3use uuid::Uuid;
4
5#[derive(Debug, Error)]
7pub enum Error {
8 #[error("row '{id}' checksums do not match, expected {commit} but got {value}")]
11 VaultHashMismatch {
12 commit: CommitHash,
14 value: CommitHash,
16 id: Uuid,
18 },
19
20 #[error("row checksums do not match, expected {commit} but got {value}")]
23 HashMismatch {
24 commit: CommitHash,
26 value: CommitHash,
28 },
29
30 #[error(transparent)]
32 TryFromSlice(#[from] std::array::TryFromSliceError),
33
34 #[error(transparent)]
36 Core(#[from] sos_core::Error),
37
38 #[error(transparent)]
40 Backend(#[from] sos_backend::Error),
41
42 #[error(transparent)]
44 Vault(#[from] sos_vault::Error),
45
46 #[error(transparent)]
48 FileSystem(#[from] sos_filesystem::Error),
49
50 #[error(transparent)]
52 Database(#[from] sos_database::Error),
53
54 #[error(transparent)]
56 AsyncSqlite(#[from] sos_database::async_sqlite::Error),
57
58 #[error(transparent)]
60 Sqlite(#[from] sos_database::async_sqlite::rusqlite::Error),
61
62 #[error(transparent)]
64 Io(#[from] std::io::Error),
65
66 #[error(transparent)]
68 Uuid(#[from] uuid::Error),
69
70 #[error(transparent)]
72 Join(#[from] tokio::task::JoinError),
73}