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(
29 "import failed, account '{0}' does not exist in the backup archive"
30 )]
31 ImportSourceNotExists(AccountId),
32
33 #[error("import failed, account '{0}' already exists")]
36 ImportTargetExists(AccountId),
37
38 #[error("database checksum is invalid, expected '{0}' but computed '{1}' (archive may be corrupt?)")]
41 DatabaseChecksum(CommitHash, CommitHash),
42
43 #[error(transparent)]
45 TryFromSlice(#[from] std::array::TryFromSliceError),
46
47 #[error(transparent)]
49 Database(#[from] crate::Error),
50
51 #[error(transparent)]
53 Io(#[from] std::io::Error),
54
55 #[error(transparent)]
57 Json(#[from] serde_json::Error),
58
59 #[error(transparent)]
61 ZipArchive(#[from] sos_archive::Error),
62
63 #[error(transparent)]
65 AsyncSqlite(#[from] async_sqlite::Error),
66
67 #[error(transparent)]
69 Rusqlite(#[from] async_sqlite::rusqlite::Error),
70
71 #[error(transparent)]
73 Refinery(#[from] refinery::Error),
74
75 #[error(transparent)]
77 Core(#[from] sos_core::Error),
78
79 #[error(transparent)]
81 Vault(#[from] sos_vault::Error),
82}