ns3_parallel/
error.rs

1//! Error
2
3use ron::error::SpannedError;
4use std::io;
5use tokio::task::JoinError;
6
7/// # Error
8///
9/// Error type for NS3 executor.
10#[derive(Debug, Clone)]
11pub enum Error {
12    InvalidConfig(String),
13    FileNotFound(String),
14    InvalidConfigFormat(String),
15    ExecuteFail(String),
16    BuildFail(String),
17    IoError(String),
18    JoinError(String),
19    NotImplement(String),
20    RetryLimitExceed,
21}
22
23impl From<io::Error> for Error {
24    fn from(e: io::Error) -> Self {
25        Error::IoError(format!("{:?}", e))
26    }
27}
28
29impl From<JoinError> for Error {
30    fn from(e: JoinError) -> Self {
31        Error::JoinError(format!("{:?}", e))
32    }
33}
34
35impl From<SpannedError> for Error {
36    fn from(e: SpannedError) -> Self {
37        Error::InvalidConfigFormat(format!("{:?}", e))
38    }
39}
40
41impl From<serde_json::Error> for Error {
42    fn from(e: serde_json::Error) -> Self {
43        Error::InvalidConfigFormat(format!("{:?}", e))
44    }
45}
46
47impl From<serde_yaml::Error> for Error {
48    fn from(e: serde_yaml::Error) -> Self {
49        Error::InvalidConfigFormat(format!("{:?}", e))
50    }
51}