mod address_mutator;
mod address_provider;
mod capability;
mod dns_mutator;
mod dns_provider;
mod event_provider;
mod interface_mutator;
mod interface_provider;
mod neighbor_provider;
mod route_provider;
#[cfg(feature = "async")]
mod tokio_event_provider;
pub use address_mutator::AddressMutator;
pub use address_provider::AddressProvider;
pub use capability::{Capability, CapabilityProvider};
pub use dns_mutator::DnsMutator;
pub use dns_provider::DnsProvider;
pub use event_provider::{EventProvider, EventReceiver, EventSender};
pub use interface_mutator::InterfaceMutator;
pub use interface_provider::InterfaceProvider;
pub use neighbor_provider::NeighborProvider;
pub use route_provider::RouteProvider;
#[cfg(feature = "async")]
pub use tokio_event_provider::{TokioEventReceiver, TokioEventSender};
#[cfg(feature = "async")]
pub trait TokioEventProvider {
type Event;
type EventFilter;
fn watch_tokio(
&self,
filter: Self::EventFilter,
) -> net_lattice_core::Result<TokioEventReceiver<Self::Event>>;
}