#![doc = include_str!("../README.md")]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
#[cfg(feature="crossbeam")]
pub mod crossbeam;
#[cfg(feature="std")]
pub mod std;
mod results;
pub use results::*;
mod shared_details;
pub use shared_details::*;
mod bounded_shared_details;
pub use bounded_shared_details::*;
#[cfg(feature="tokio")]
pub mod tokio_helpers;
mod waker_permit_queue;
pub use waker_permit_queue::*;
#[cfg(test)]
mod waker_permit_queue_tests;
#[cfg(feature="scc")]
pub mod scc;
mod channel_shared_details;
pub use channel_shared_details::*;
mod queued_waker;
pub use queued_waker::*;
mod limited_waker_permit_queue;
pub use limited_waker_permit_queue::*;
#[cfg(test)]
mod limited_waker_permit_queue_tests;
#[cfg(feature="crossbeam-queue")]
pub mod crossbeam_queue;
#[cfg(feature="use_std_sync")]
pub type PreferredMutexType<T> = ::std::sync::Mutex<T>;
#[cfg(feature="use_parking_lot_sync")]
pub type PreferredMutexType<T> = parking_lot::Mutex<T>;
#[cfg(feature="use_parking_lot_fair_sync")]
pub type PreferredMutexType<T> = parking_lot::FairMutex<T>;