#![cfg_attr(docsrs, feature(doc_cfg))]
#![warn(missing_docs)]
#![deny(rustdoc::broken_intra_doc_links)]
#[cfg(feature = "async_flag")]
mod async_flag;
#[cfg(feature = "bilock")]
mod bilock;
#[cfg(feature = "event")]
mod event;
#[cfg(feature = "mutex")]
mod mutex;
#[cfg(feature = "waker_slot")]
mod waker_slot;
mod atomic;
mod flag;
mod mutex_blocking;
mod shared;
pub mod sync {
#[doc(inline)]
#[cfg(feature = "watch")]
pub use see::sync as watch;
#[doc(inline)]
#[cfg(feature = "async_flag")]
pub use crate::async_flag::sync as async_flag;
#[doc(inline)]
#[cfg(feature = "bilock")]
pub use crate::bilock::sync as bilock;
#[doc(inline)]
#[cfg(feature = "event")]
pub use crate::event::sync as event;
#[doc(inline)]
#[cfg(feature = "mutex")]
pub use crate::mutex::sync as mutex;
#[doc(inline)]
#[cfg(feature = "waker_slot")]
pub use crate::waker_slot::sync as waker_slot;
#[doc(inline)]
pub use crate::{
atomic::sync as atomic, flag::sync as flag, mutex_blocking::sync as mutex_blocking,
shared::sync as shared,
};
}
pub mod unsync {
#[doc(inline)]
#[cfg(feature = "watch")]
pub use see::unsync as watch;
#[doc(inline)]
#[cfg(feature = "async_flag")]
pub use crate::async_flag::unsync as async_flag;
#[doc(inline)]
#[cfg(feature = "bilock")]
pub use crate::bilock::unsync as bilock;
#[doc(inline)]
#[cfg(feature = "event")]
pub use crate::event::unsync as event;
#[doc(inline)]
#[cfg(feature = "mutex")]
pub use crate::mutex::unsync as mutex;
#[doc(inline)]
#[cfg(feature = "waker_slot")]
pub use crate::waker_slot::unsync as waker_slot;
#[doc(inline)]
pub use crate::{
atomic::unsync as atomic, flag::unsync as flag, mutex_blocking::unsync as mutex_blocking,
shared::unsync as shared,
};
}
#[allow(dead_code)]
trait AssertMt: Send + Sync {}
macro_rules! cfg_loom {
{
$vis:vis use $alt:ident :: $($tail:tt)*
} => {
#[cfg(loom)]
$vis use loom::$($tail)*
#[cfg(not(loom))]
$vis use $alt::$($tail)*
};
}
use cfg_loom;