clouddns_nat_helper/
ipv4source.rs1mod fixed;
9mod hostname;
10
11pub use fixed::FixedSource;
13pub use hostname::{HostnameSource, HostnameSourceConfig};
14
15use std::{fmt::Display, net::Ipv4Addr};
16
17pub trait Ipv4Source {
19 fn addr(&self) -> Result<Ipv4Addr, SourceError>;
20}
21
22#[derive(Debug, Clone, PartialEq, Eq, Hash)]
23pub struct SourceError {
24 msg: String,
25}
26impl Display for SourceError {
27 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
28 write!(f, "{}", self.msg)
29 }
30}
31impl std::error::Error for SourceError {}
32impl From<String> for SourceError {
33 fn from(s: String) -> Self {
34 SourceError { msg: s }
35 }
36}