pub use mutex::MutexLock;
pub use rwlock::RwLock;
#[cfg(feature = "async")]
pub use {mutex::AsyncMutexLock, rwlock::AsyncRwLock};
use crate::{LockLevel, MutualExclusion, ReadWrite};
mod mutex;
mod rwlock;
pub trait MutexLockLevel: LockLevel<Method = MutualExclusion> {
type Mutex: MutexLock;
}
pub trait RwLockLevel: LockLevel<Method = ReadWrite> {
type RwLock: RwLock;
}
#[cfg(feature = "async")]
pub trait AsyncMutexLockLevel: LockLevel<Method = MutualExclusion> {
type Mutex: AsyncMutexLock;
}
#[cfg(feature = "async")]
pub trait AsyncRwLockLevel: LockLevel<Method = ReadWrite> {
type RwLock: AsyncRwLock;
}