2017-03-21 10:28:11 +00:00
|
|
|
use ::prelude::*;
|
|
|
|
|
2017-03-16 08:42:30 +00:00
|
|
|
use std::io;
|
|
|
|
use std::path::PathBuf;
|
|
|
|
|
2017-03-21 10:28:11 +00:00
|
|
|
use super::backup::BackupError;
|
2017-03-16 08:42:30 +00:00
|
|
|
use super::bundle_map::BundleMapError;
|
|
|
|
use super::config::ConfigError;
|
|
|
|
|
|
|
|
|
|
|
|
quick_error!{
|
|
|
|
#[derive(Debug)]
|
|
|
|
pub enum RepositoryError {
|
|
|
|
Io(err: io::Error) {
|
|
|
|
from()
|
|
|
|
cause(err)
|
2017-03-18 16:22:11 +00:00
|
|
|
description("IO error")
|
|
|
|
display("IO error: {}", err)
|
2017-03-16 08:42:30 +00:00
|
|
|
}
|
|
|
|
Config(err: ConfigError) {
|
|
|
|
from()
|
|
|
|
cause(err)
|
|
|
|
description("Configuration error")
|
2017-03-18 16:22:11 +00:00
|
|
|
display("Configuration error: {}", err)
|
2017-03-16 08:42:30 +00:00
|
|
|
}
|
|
|
|
BundleMap(err: BundleMapError) {
|
|
|
|
from()
|
|
|
|
cause(err)
|
|
|
|
description("Bundle map error")
|
2017-03-18 16:22:11 +00:00
|
|
|
display("Bundle map error: {}", err)
|
2017-03-16 08:42:30 +00:00
|
|
|
}
|
|
|
|
Index(err: IndexError) {
|
|
|
|
from()
|
|
|
|
cause(err)
|
|
|
|
description("Index error")
|
2017-03-18 16:22:11 +00:00
|
|
|
display("Index error: {}", err)
|
2017-03-16 08:42:30 +00:00
|
|
|
}
|
|
|
|
Bundle(err: BundleError) {
|
|
|
|
from()
|
|
|
|
cause(err)
|
|
|
|
description("Bundle error")
|
2017-03-18 16:22:11 +00:00
|
|
|
display("Bundle error: {}", err)
|
2017-03-16 08:42:30 +00:00
|
|
|
}
|
2017-03-21 09:52:48 +00:00
|
|
|
Backup(err: BackupError) {
|
|
|
|
from()
|
|
|
|
cause(err)
|
|
|
|
description("Backup error")
|
|
|
|
display("Backup error: {}", err)
|
|
|
|
}
|
2017-03-16 08:42:30 +00:00
|
|
|
Chunker(err: ChunkerError) {
|
|
|
|
from()
|
|
|
|
cause(err)
|
|
|
|
description("Chunker error")
|
2017-03-18 16:22:11 +00:00
|
|
|
display("Chunker error: {}", err)
|
2017-03-16 08:42:30 +00:00
|
|
|
}
|
|
|
|
Decode(err: msgpack::DecodeError) {
|
|
|
|
from()
|
|
|
|
cause(err)
|
|
|
|
description("Failed to decode metadata")
|
2017-03-18 16:22:11 +00:00
|
|
|
display("Failed to decode metadata: {}", err)
|
2017-03-16 08:42:30 +00:00
|
|
|
}
|
|
|
|
Encode(err: msgpack::EncodeError) {
|
|
|
|
from()
|
|
|
|
cause(err)
|
|
|
|
description("Failed to encode metadata")
|
2017-03-18 16:22:11 +00:00
|
|
|
display("Failed to encode metadata: {}", err)
|
2017-03-16 08:42:30 +00:00
|
|
|
}
|
|
|
|
Integrity(err: RepositoryIntegrityError) {
|
|
|
|
from()
|
|
|
|
cause(err)
|
|
|
|
description("Integrity error")
|
2017-03-18 16:22:11 +00:00
|
|
|
display("Integrity error: {}", err)
|
|
|
|
}
|
|
|
|
Encryption(err: EncryptionError) {
|
|
|
|
from()
|
|
|
|
cause(err)
|
|
|
|
description("Failed to load keys")
|
|
|
|
display("Failed to load keys: {}", err)
|
2017-03-16 08:42:30 +00:00
|
|
|
}
|
|
|
|
InvalidFileType(path: PathBuf) {
|
|
|
|
description("Invalid file type")
|
|
|
|
display("{:?} has an invalid file type", path)
|
|
|
|
}
|
2017-03-16 12:59:57 +00:00
|
|
|
NoSuchFileInBackup(backup: Backup, path: PathBuf) {
|
|
|
|
description("No such file in backup")
|
|
|
|
display("The backup does not contain the file {:?}", path)
|
|
|
|
}
|
2017-03-21 09:52:48 +00:00
|
|
|
UnsafeVacuum {
|
|
|
|
description("Not all backups can be read, refusing to run vacuum")
|
|
|
|
}
|
2017-03-16 08:42:30 +00:00
|
|
|
}
|
|
|
|
}
|