1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
//! Vault workflow and I/O errors
use std::error::Error as StdError;
use std::fmt::{Display, Formatter, Result};
#[derive(Debug, Serialize, Deserialize)]
pub enum Error {
/// Indicates that **mandatory** fields in the
/// vault generator haven't been set – vault
/// constructor was never called.
IncompleteGenerator,
/// A vault already exists with that path-id
AlreadyExists,
/// The provided path is invalid
InvalidPath,
/// The provided name is invalid
///
/// This usually means the backing storage doesn't support some
/// character in the name which can sometimes occur if the name
/// contains special unicode characters that a filesystem doesn't
/// recognise as valid characters.
InvalidName,
/// The combination of selected components threw a runtime incompatibility error
InvalidCompoents {
/// Optionally the type that is incompatible (if it can be determined)
tt: Option<String>,
},
/// Vault failed it's checksum self-test
///
/// This is problematic because it also means the vault was unable to correct
/// any errors. Either the backing storage has some serious issues or maybe
/// an external sync process that lockchain can't detect is still working.
FailedSelfTest,
/// Failed to initialise lockchain vault handler
FailedInitalise,
/// Failed to create a vault for an unknown reason
FailedCreation,
/// Failed to load a vault for an unknown reason
FailedLoading,
/// Failed to close the vault properly.
///
/// This could be because the backing storage is no longer available
/// or permisions to write have been revoked.
FailedClosing,
/// Make sure we don't break user code with new options
#[doc(hidden)]
__NonExhaustive,
}
impl StdError for Error {}
impl Display for Error {
fn fmt(&self, f: &mut Formatter) -> Result {
write!(
f,
"{}",
match self {
_ => "Unknown failure",
}
)
}
}
|