xnode_deployer/utils/
error.rs1use 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}