//! Service discovery primitives and local adapters.

pub mod dns;
pub mod error;
pub mod instance;
pub mod registry;
pub mod selector;
pub mod static_discovery;

pub use dns::DnsDiscovery;
pub use error::{DiscoveryError, DiscoveryResult};
pub use instance::{InstanceEndpoint, ServiceInstance};
pub use registry::{Discovery, MemoryRegistry, Registry};
pub use selector::{InstanceSelector, RoundRobinSelector};
pub use static_discovery::StaticDiscovery;

#[cfg(feature = "discovery-etcd")]
pub use crate::discovery_etcd as etcd;
#[cfg(feature = "discovery-kube")]
pub use crate::discovery_kube as kube;
