sos_database/archive/
error.rs1use sos_core::{commit::CommitHash, AccountId};
2use std::path::PathBuf;
3use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum Error {
8 #[error("archive file '{0}' already exists")]
10 ArchiveFileExists(PathBuf),
11
12 #[error("archive file '{0}' does not exist")]
14 ArchiveFileNotExists(PathBuf),
15
16 #[error("archive '{0}' manifest does not exist or is invalid")]
19 InvalidArchiveManifest(PathBuf),
20
21 #[error("archive '{0}' is missing the database '{1}'")]
24 NoDatabaseFile(PathBuf, String),
25
26 #[error("import failed, account '{0}' does not exist in source db")]
29 ImportSourceNotExists(AccountId),
30
31 #[error("import failed, account '{0}' already exists in target db")]
34 ImportTargetExists(AccountId),
35
36 #[error("database checksum is invalid, expected '{0}' but computed '{1}' (archive may be corrupt?)")]
39 DatabaseChecksum(CommitHash, CommitHash),
40
41 #[error(transparent)]
43 TryFromSlice(#[from] std::array::TryFromSliceError),
44
45 #[error(transparent)]
47 Database(#[from] crate::Error),
48
49 #[error(transparent)]
51 Io(#[from] std::io::Error),
52
53 #[error(transparent)]
55 Json(#[from] serde_json::Error),
56
57 #[error(transparent)]
59 ZipArchive(#[from] sos_archive::Error),
60
61 #[error(transparent)]
63 AsyncSqlite(#[from] async_sqlite::Error),
64
65 #[error(transparent)]
67 Rusqlite(#[from] async_sqlite::rusqlite::Error),
68
69 #[error(transparent)]
71 Refinery(#[from] refinery::Error),
72
73 #[error(transparent)]
75 Core(#[from] sos_core::Error),
76
77 #[error(transparent)]
79 Vault(#[from] sos_vault::Error),
80}