#![doc = include_str!("../README.md")]
#![cfg_attr(not(feature = "std"), no_std)]
#![forbid(unsafe_code)]
#![deny(missing_docs)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(docsrs, allow(unused_attributes))]
#[cfg(not(any(
feature = "tokio",
feature = "smol",
feature = "compio",
feature = "smoltcp",
feature = "smoltcp-no-atomic",
feature = "embassy",
feature = "embassy-no-atomic"
)))]
compile_error!(
"hick: enable a runtime (`tokio`, `smol`, or `compio`) or a bare-metal driver \
(`smoltcp` / `embassy`, or their `-no-atomic` variants for cores without \
native atomic CAS)"
);
pub use mdns_proto as proto;
pub use mdns_proto::wire;
#[cfg(any(
feature = "tokio",
feature = "smol",
feature = "compio",
feature = "smoltcp",
feature = "smoltcp-no-atomic",
feature = "embassy",
feature = "embassy-no-atomic"
))]
pub use mdns_proto::{
CollectedAnswer, Name, QuerySpec, ServiceRecords, ServiceSpec, ServiceUpdate,
};
#[cfg(feature = "tokio")]
#[cfg_attr(docsrs, doc(cfg(feature = "tokio")))]
pub mod tokio {
pub use hick_reactor::{
CancelError, Lookup, Query, QueryEvent, QueryParam, RegisterError, ServerError, ServerOptions,
Service, ServiceEntry, StartQueryError,
tokio::{Endpoint, server},
};
}
#[cfg(feature = "smol")]
#[cfg_attr(docsrs, doc(cfg(feature = "smol")))]
pub mod smol {
pub use hick_reactor::{
CancelError, Lookup, Query, QueryEvent, QueryParam, RegisterError, ServerError, ServerOptions,
Service, ServiceEntry, StartQueryError,
smol::{Endpoint, server},
};
}
#[cfg(feature = "compio")]
#[cfg_attr(docsrs, doc(cfg(feature = "compio")))]
pub use hick_compio as compio;
#[cfg(any(feature = "smoltcp", feature = "smoltcp-no-atomic"))]
#[cfg_attr(
docsrs,
doc(cfg(any(feature = "smoltcp", feature = "smoltcp-no-atomic")))
)]
pub use hick_smoltcp as smoltcp;
#[cfg(any(feature = "embassy", feature = "embassy-no-atomic"))]
#[cfg_attr(
docsrs,
doc(cfg(any(feature = "embassy", feature = "embassy-no-atomic")))
)]
pub use hick_embassy as embassy;