hyperi_rustlib/cli/
error.rs1use thiserror::Error;
12
13#[derive(Debug, Error)]
15pub enum CliError {
16 #[error("config error: {0}")]
18 Config(String),
19
20 #[error("logger error: {0}")]
22 Logger(String),
23
24 #[error("metrics error: {0}")]
26 Metrics(String),
27
28 #[error("service error: {0}")]
30 Service(String),
31
32 #[error("invalid argument: {0}")]
34 InvalidArgument(String),
35
36 #[error("I/O error: {0}")]
38 Io(#[from] std::io::Error),
39}
40
41#[cfg(feature = "logger")]
42impl From<crate::logger::LoggerError> for CliError {
43 fn from(e: crate::logger::LoggerError) -> Self {
44 Self::Logger(e.to_string())
45 }
46}
47
48#[cfg(feature = "config")]
49impl From<crate::config::ConfigError> for CliError {
50 fn from(e: crate::config::ConfigError) -> Self {
51 Self::Config(e.to_string())
52 }
53}