use std::net::SocketAddr;
pub use crate::candidate_discovery::{
DiscoveryError, DiscoveryEvent, NetworkInterface, ValidatedCandidate,
};
pub trait NetworkDiscovery {
fn discover_interfaces(&self) -> Result<Vec<NetworkInterface>, DiscoveryError>;
fn get_default_route(&self) -> Result<Option<SocketAddr>, DiscoveryError>;
}
#[cfg(windows)]
pub mod windows;
#[cfg(target_os = "linux")]
pub mod linux;
#[cfg(target_os = "macos")]
pub mod macos;
#[cfg(test)]
pub mod mock;
pub mod filter;
pub mod lookup;
pub use filter::{
AddrFilter, CompositeFilter, DedupFilter, DropLoopbackFilter, DropUnspecifiedFilter,
PassThroughFilter, PreferIpv6Filter,
};
pub use lookup::{
AddressLookup, BootstrapCacheLookup, HardcodedLookup, LookupError, LookupRegistry, MdnsLookup,
ParallelLookupStream,
};