use std::io;
use thiserror::Error;
use crate::output::logging::MessageId;
#[derive(Error, Debug)]
pub enum CompactError {
#[error("Unknown error occurred: {0}")]
Unknown(String),
#[error("error while splitting the arguments")]
ShlexError,
#[error("The command failed to execute: {0}")]
CommandFailed(#[from] io::Error),
#[error("Error while deserializing borg output: {0}")]
InvalidBorgOutput(io::Error),
#[error("Error while deserializing borg output: {0}")]
DeserializeError(#[from] serde_json::Error),
#[error("Borg was terminated by a signal")]
TerminatedBySignal,
#[error("Piping from stdout or stderr failed")]
PipeFailed,
#[error("An unexpected message id was received: {0}")]
UnexpectedMessageId(MessageId),
}
#[derive(Debug, Error)]
pub enum PruneError {
#[error("Unknown error occurred: {0}")]
Unknown(String),
#[error("error while splitting the arguments")]
ShlexError,
#[error("The command failed to execute: {0}")]
CommandFailed(#[from] io::Error),
#[error("Error while deserializing borg output: {0}")]
InvalidBorgOutput(io::Error),
#[error("Error while deserializing borg output: {0}")]
DeserializeError(#[from] serde_json::Error),
#[error("Borg was terminated by a signal")]
TerminatedBySignal,
#[error("Piping from stdout or stderr failed")]
PipeFailed,
#[error("The specified archive name already exists")]
ArchiveAlreadyExists,
#[error("An unexpected message id was received: {0}")]
UnexpectedMessageId(MessageId),
}
#[derive(Debug, Error)]
pub enum MountError {
#[error("Unknown error occurred: {0}")]
Unknown(String),
#[error("error while splitting the arguments")]
ShlexError,
#[error("The command failed to execute: {0}")]
CommandFailed(#[from] io::Error),
#[error("Error while deserializing borg output: {0}")]
InvalidBorgOutput(io::Error),
#[error("Error while deserializing borg output: {0}")]
DeserializeError(#[from] serde_json::Error),
#[error("Borg was terminated by a signal")]
TerminatedBySignal,
#[error("Failed to umount: {0}")]
UMountError(String),
#[error("An unexpected message id was received: {0}")]
UnexpectedMessageId(MessageId),
}
#[derive(Debug, Error)]
pub enum ExtractError {
#[error("Unknown error occurred: {0}")]
Unknown(String),
#[error("error while splitting the arguments")]
ShlexError,
#[error("The command failed to execute: {0}")]
CommandFailed(#[from] io::Error),
#[error("Error while deserializing borg output: {0}")]
InvalidBorgOutput(io::Error),
#[error("Error while deserializing borg output: {0}")]
DeserializeError(#[from] serde_json::Error),
#[error("Borg was terminated by a signal")]
TerminatedBySignal,
#[error("An unexpected message id was received: {0}")]
UnexpectedMessageId(MessageId),
}
#[derive(Error, Debug)]
pub enum ListError {
#[error("Unknown error occurred: {0}")]
Unknown(String),
#[error("error while splitting the arguments")]
ShlexError,
#[error("The command failed to execute: {0}")]
CommandFailed(#[from] io::Error),
#[error("Could not read borg output: {0}")]
InvalidBorgOutput(io::Error),
#[error("Error while deserializing borg output: {0}")]
DeserializeError(#[from] serde_json::Error),
#[error("Borg was terminated by a signal")]
TerminatedBySignal,
#[error("Piping from stdout or stderr failed")]
PipeFailed,
#[error("An unexpected message id was received: {0}")]
UnexpectedMessageId(MessageId),
#[error("The repository does not exist")]
RepositoryDoesNotExist,
#[error("The provided passphrase was incorrect")]
PassphraseWrong,
}
#[derive(Error, Debug)]
pub enum InitError {
#[error("error while splitting the arguments")]
ShlexError,
#[error("The command failed to execute: {0}")]
CommandFailed(#[from] io::Error),
#[error("Could not read borg output: {0}")]
InvalidBorgOutput(io::Error),
#[error("Error while deserializing borg output: {0}")]
DeserializeError(#[from] serde_json::Error),
#[error("Borg was terminated by a signal")]
TerminatedBySignal,
#[error("Repository already exists")]
RepositoryAlreadyExists,
#[error("Unexpected msg_id received: {0}")]
UnexpectedMessageId(MessageId),
#[error("Unknown error occurred: {0}")]
Unknown(String),
}
#[derive(Debug, Error)]
pub enum CreateError {
#[error("Piping failed")]
PipeFailed,
#[error("Archive already exists")]
ArchiveAlreadyExists,
#[error("Invalid passphrase")]
PassphraseWrong,
#[error("error while splitting the arguments")]
ShlexError,
#[error("The command failed to execute: {0}")]
CommandFailed(#[from] io::Error),
#[error("Could not read borg output: {0}")]
InvalidBorgOutput(io::Error),
#[error("Error while deserializing borg output: {0}")]
DeserializeError(#[from] serde_json::Error),
#[error("Borg was terminated by a signal")]
TerminatedBySignal,
#[error("Unexpected msg_id received: {0}")]
UnexpectedMessageId(MessageId),
#[error("Unknown error occurred: {0}")]
Unknown(String),
}