xnode_deployer/utils/
error.rs

1use std::fmt::Display;
2
3#[cfg(feature = "hivelocity")]
4use crate::hivelocity::HivelocityError;
5#[cfg(feature = "hyperstack")]
6use crate::hyperstack::HyperstackError;
7
8#[derive(Debug)]
9pub enum Error {
10    XnodeDeployerError(XnodeDeployerError),
11    ReqwestError(reqwest::Error),
12}
13
14#[derive(Debug)]
15pub struct XnodeDeployerError {
16    error: Box<XnodeDeployerErrorInner>,
17}
18
19impl Display for XnodeDeployerError {
20    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
21        self.error.fmt(f)
22    }
23}
24
25#[derive(Debug)]
26pub enum XnodeDeployerErrorInner {
27    Default,
28    #[cfg(feature = "hivelocity")]
29    HivelocityError(HivelocityError),
30    #[cfg(feature = "hyperstack")]
31    HyperstackError(HyperstackError),
32}
33
34impl Display for XnodeDeployerErrorInner {
35    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
36        f.write_str(
37            match self {
38                XnodeDeployerErrorInner::Default => "".to_string(),
39                #[cfg(feature = "hivelocity")]
40                XnodeDeployerErrorInner::HivelocityError(e) => e.to_string(),
41                #[cfg(feature = "hyperstack")]
42                XnodeDeployerErrorInner::HyperstackError(e) => e.to_string(),
43            }
44            .as_str(),
45        )
46    }
47}
48
49impl XnodeDeployerError {
50    pub fn new(error: XnodeDeployerErrorInner) -> Self {
51        Self {
52            error: Box::new(error),
53        }
54    }
55}