use core::fmt;
use alloc::string::String;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ConfigError {
InvalidClientId(String),
InvalidKeepAlive(String),
InvalidWillMessage(String),
InvalidLimit(String),
InvalidTimeout(String),
InvalidProtocol(String),
ReconnectDisabled,
InvalidAuthentication(String),
InvalidTransport(String),
InvalidQoS(String),
InvalidTopic(String),
}
impl fmt::Display for ConfigError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::InvalidClientId(msg) => write!(f, "Invalid client ID: {msg}"),
Self::InvalidKeepAlive(msg) => write!(f, "Invalid keep-alive setting: {msg}"),
Self::InvalidWillMessage(msg) => write!(f, "Invalid will message: {msg}"),
Self::InvalidLimit(msg) => write!(f, "Invalid limit setting: {msg}"),
Self::InvalidTimeout(msg) => write!(f, "Invalid timeout setting: {msg}"),
Self::InvalidProtocol(msg) => write!(f, "Invalid protocol configuration: {msg}"),
Self::ReconnectDisabled => write!(f, "Auto-reconnect is disabled in the configuration"),
Self::InvalidAuthentication(msg) => write!(f, "Invalid auth configuration: {msg}"),
Self::InvalidTransport(msg) => write!(f, "Invalid transport configuration: {msg}"),
Self::InvalidQoS(msg) => write!(f, "Invalid QoS configuration: {msg}"),
Self::InvalidTopic(msg) => write!(f, "Invalid topic configuration: {msg}"),
}
}
}
#[cfg(feature = "std")]
impl std::error::Error for ConfigError {}