mod fixed;
mod hostname;
pub use fixed::FixedSource;
pub use hostname::{HostnameSource, HostnameSourceConfig};
use std::{fmt::Display, net::Ipv4Addr};
pub trait Ipv4Source {
fn addr(&self) -> Result<Ipv4Addr, SourceError>;
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct SourceError {
msg: String,
}
impl Display for SourceError {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "{}", self.msg)
}
}
impl std::error::Error for SourceError {}
impl From<String> for SourceError {
fn from(s: String) -> Self {
SourceError { msg: s }
}
}