xnode_deployer/utils/
error.rs

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