summaryrefslogtreecommitdiff
path: root/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs
index 30571ec..e8f5ee8 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -1,3 +1,5 @@
+//! Errors from Obnam client.
+
use crate::backup_run::BackupError;
use crate::cipher::CipherError;
use crate::client::ClientError;
@@ -12,47 +14,64 @@ use tempfile::PersistError;
/// Define all the kinds of errors that functions corresponding to
/// subcommands of the main program can return.
+///
+/// This collects all kinds of errors the Obnam client may get, for
+/// convenience.
#[derive(Debug, thiserror::Error)]
pub enum ObnamError {
+ /// Error listing generations on server.
#[error(transparent)]
GenerationListError(#[from] GenerationListError),
+ /// Error saving passwords.
#[error("couldn't save passwords to {0}: {1}")]
PasswordSave(PathBuf, PasswordError),
+ /// Error using server HTTP API.
#[error(transparent)]
ClientError(#[from] ClientError),
+ /// Error in client configuration.
#[error(transparent)]
ClientConfigError(#[from] ClientConfigError),
+ /// Error making a backup.
#[error(transparent)]
BackupError(#[from] BackupError),
+ /// Error making a new backup generation.
#[error(transparent)]
NascentError(#[from] NascentError),
+ /// Error encrypting or decrypting.
#[error(transparent)]
CipherError(#[from] CipherError),
+ /// Error using local copy of existing backup generation.
#[error(transparent)]
LocalGenerationError(#[from] LocalGenerationError),
+ /// Error restoring a backup.
#[error(transparent)]
RestoreError(#[from] RestoreError),
+ /// Error making temporary file persistent.
#[error(transparent)]
PersistError(#[from] PersistError),
+ /// Error doing I/O.
#[error(transparent)]
IoError(#[from] std::io::Error),
+ /// Error reading system clock.
#[error(transparent)]
SystemTimeError(#[from] SystemTimeError),
+ /// Error regarding JSON.
#[error(transparent)]
SerdeJsonError(#[from] serde_json::Error),
+ /// Unexpected cache directories found.
#[error(
"found CACHEDIR.TAG files that aren't present in the previous backup, might be an attack"
)]