forked from paritytech/zombienet-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
errors.rs
45 lines (42 loc) · 1.33 KB
/
errors.rs
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
//! Zombienet Provider error definitions.
macro_rules! from_error {
($type:ty, $target:ident, $targetvar:expr) => {
impl From<$type> for $target {
fn from(s: $type) -> Self {
$targetvar(s.into())
}
}
};
}
#[derive(Debug, thiserror::Error)]
#[allow(missing_docs)]
pub enum ProviderError {
#[error("Invalid network configuration field {0}")]
InvalidConfig(String),
#[error("Can recover node: {0} info, field: {1}")]
MissingNodeInfo(String, String),
#[error("Duplicated node name: {0}")]
DuplicatedNodeName(String),
#[error("Error running cmd: {0}")]
RunCommandError(String),
#[error("Error spawning node: {0}")]
ErrorSpawningNode(String),
#[error("Node die/stale, logs: {0}")]
NodeNotReady(String),
// FSErrors are implemented in the associated type
#[error(transparent)]
FSError(Box<dyn std::error::Error + Sync + Send + 'static>),
// From serde errors
#[error("Serialization error")]
SerializationError(serde_json::Error),
#[error("IO error: {0}")]
IOError(std::io::Error),
#[error("Invalid script_path: {0}")]
InvalidScriptPath(String),
}
from_error!(
serde_json::Error,
ProviderError,
ProviderError::SerializationError
);
from_error!(std::io::Error, ProviderError, ProviderError::IOError);