use thiserror::Error;
#[derive(Debug, Error)]
pub enum CliError {
#[error("config error: {0}")]
Config(String),
#[error("logger error: {0}")]
Logger(String),
#[error("metrics error: {0}")]
Metrics(String),
#[error("service error: {0}")]
Service(String),
#[error("invalid argument: {0}")]
InvalidArgument(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
}
#[cfg(feature = "logger")]
impl From<crate::logger::LoggerError> for CliError {
fn from(e: crate::logger::LoggerError) -> Self {
Self::Logger(e.to_string())
}
}
#[cfg(feature = "config")]
impl From<crate::config::ConfigError> for CliError {
fn from(e: crate::config::ConfigError) -> Self {
Self::Config(e.to_string())
}
}