pub use agnostic::smol::SmolRuntime;
#[cfg(feature = "net")]
#[cfg_attr(docsrs, doc(cfg(feature = "net")))]
pub use memberlist_net::SmolNetTransport;
#[cfg(feature = "quic")]
#[cfg_attr(docsrs, doc(cfg(feature = "quic")))]
pub use memberlist_quic::SmolQuicTransport;
pub type SmolSocketAddrResolver =
memberlist_core::transport::resolver::socket_addr::SocketAddrResolver<SmolRuntime>;
pub type SmolHostAddrResolver =
memberlist_core::transport::resolver::address::HostAddrResolver<SmolRuntime>;
#[cfg(feature = "dns")]
#[cfg_attr(docsrs, doc(cfg(feature = "dns")))]
pub type SmolDnsResolver = memberlist_core::transport::resolver::dns::DnsResolver<SmolRuntime>;
#[cfg(all(any(feature = "tcp", feature = "tls"), not(target_family = "wasm")))]
#[cfg_attr(
docsrs,
doc(cfg(all(any(feature = "tcp", feature = "tls"), not(target_family = "wasm"))))
)]
pub type SmolTcp = memberlist_net::stream_layer::tcp::Tcp<SmolRuntime>;
#[cfg(all(feature = "tls", not(target_family = "wasm")))]
#[cfg_attr(docsrs, doc(cfg(all(feature = "tls", not(target_family = "wasm")))))]
pub type SmolTls = memberlist_net::stream_layer::tls::Tls<SmolRuntime>;
#[cfg(all(feature = "quinn", not(target_family = "wasm")))]
#[cfg_attr(docsrs, doc(cfg(all(feature = "quinn", not(target_family = "wasm")))))]
pub type SmolQuinn = memberlist_quic::stream_layer::quinn::Quinn<SmolRuntime>;
#[cfg(all(any(feature = "tcp", feature = "tls"), not(target_family = "wasm")))]
#[cfg_attr(
docsrs,
doc(cfg(all(any(feature = "tcp", feature = "tls"), not(target_family = "wasm"))))
)]
pub type SmolTcpMemberlist<I, A, D> =
memberlist_core::Memberlist<SmolNetTransport<I, A, SmolTcp>, D>;
#[cfg(all(feature = "tls", not(target_family = "wasm")))]
#[cfg_attr(docsrs, doc(cfg(all(feature = "tls", not(target_family = "wasm")))))]
pub type SmolTlsMemberlist<I, A, D> =
memberlist_core::Memberlist<SmolNetTransport<I, A, SmolTls>, D>;
#[cfg(all(feature = "quinn", not(target_family = "wasm")))]
#[cfg_attr(docsrs, doc(cfg(all(feature = "quinn", not(target_family = "wasm")))))]
pub type SmolQuicMemberlist<I, A, D> =
memberlist_core::Memberlist<SmolQuicTransport<I, A, SmolQuinn>, D>;