pub trait Mutex<T>: Send + Sync {
type Guard: for<'a> GuardLt<'a, T>;
fn lock<'s, 'async_trait>(
&'s self
) -> Pin<Box<dyn Future<Output = Result<<Self::Guard as GuardLt<'s, T>>::Guard>> + Send + 'async_trait>>
where
's: 'async_trait,
Self: 'async_trait;
}