/// A lock (mutex) yielding generic data. pub(crate) trait Lock { type Handle: AsMut; fn lock(self) -> Self::Handle; }