1use ron::error::SpannedError;
4use std::io;
5use tokio::task::JoinError;
6
7#[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}