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
use holochain_core_types::error::HolochainError;
use std::{error::Error, fmt};
pub type HolochainResult<T> = Result<T, HolochainInstanceError>;
#[derive(Debug, PartialEq, Clone)]
pub enum HolochainInstanceError {
InternalFailure(HolochainError),
InstanceNotActiveYet,
InstanceAlreadyActive,
}
impl Error for HolochainInstanceError {
fn description(&self) -> &str {
match self {
HolochainInstanceError::InternalFailure(ref err) => err.description(),
HolochainInstanceError::InstanceNotActiveYet => "Holochain instance is not active yet.",
HolochainInstanceError::InstanceAlreadyActive => {
"Holochain instance is already active."
}
}
}
#[cfg_attr(rustfmt, rustfmt_skip)]
fn cause(&self) -> Option<&Error> {
match self {
HolochainInstanceError::InternalFailure(ref err) => Some(err),
HolochainInstanceError::InstanceNotActiveYet => None,
HolochainInstanceError::InstanceAlreadyActive => None,
}
}
}
impl fmt::Display for HolochainInstanceError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "Holochain Instance Error: {}", self.description())
}
}
impl From<HolochainError> for HolochainInstanceError {
fn from(error: HolochainError) -> Self {
HolochainInstanceError::InternalFailure(error)
}
}