use std::future::Future;
#[cfg(unix)]
pub(crate) mod os;
#[cfg(all(feature = "smol", not(feature = "tokio")))]
pub(crate) mod smol;
#[cfg(feature = "tokio")]
pub(crate) mod tokio;
#[cfg(test)]
mod tests;
pub(crate) trait AsyncSignaler: Send + Sync + 'static {
fn signal(&self);
fn signaled(&self) -> impl Future<Output = ()> + Send + '_;
}
#[cfg(all(feature = "smol", not(feature = "tokio")))]
#[allow(unused_imports)]
pub(crate) use self::smol::SmolSignaler as RuntimeSignaler;
#[cfg(feature = "tokio")]
#[allow(unused_imports)]
pub(crate) use self::tokio::TokioSignaler as RuntimeSignaler;