use std::fmt;
#[derive(Debug)]
pub enum DiscoveryError {
NetworkError(String),
ParseError(String),
Timeout,
InvalidDevice(String),
}
impl fmt::Display for DiscoveryError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
DiscoveryError::NetworkError(msg) => write!(f, "Network error: {msg}"),
DiscoveryError::ParseError(msg) => write!(f, "Parse error: {msg}"),
DiscoveryError::Timeout => write!(f, "Operation timed out"),
DiscoveryError::InvalidDevice(msg) => write!(f, "Invalid device: {msg}"),
}
}
}
impl std::error::Error for DiscoveryError {}
pub type Result<T> = std::result::Result<T, DiscoveryError>;