#![cfg_attr(docsrs, feature(doc_cfg))]
#![warn(missing_docs)]
mod mutex;
mod rwlock;
pub use mutex::{Mutex, MutexFut, MutexGuard, MutexWeak};
pub use rwlock::{RwLock, RwLockReadFut, RwLockWriteFut,
RwLockReadGuard, RwLockWriteGuard};
use futures_channel::oneshot;
use std::{error, fmt};
enum FutState {
New,
Pending(oneshot::Receiver<()>),
Acquired
}
#[derive(Clone, Copy, Debug)]
pub struct TryLockError;
impl fmt::Display for TryLockError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "try_lock failed because the operation would block")
}
}
impl error::Error for TryLockError {}