medmodels_utils/traits.rs
1use std::sync::{RwLock, RwLockReadGuard, RwLockWriteGuard};
2
3pub trait ReadWriteOrPanic<T> {
4 fn read_or_panic(&self) -> RwLockReadGuard<'_, T>;
5
6 fn write_or_panic(&self) -> RwLockWriteGuard<'_, T>;
7}
8
9impl<T> ReadWriteOrPanic<T> for RwLock<T> {
10 fn read_or_panic(&self) -> RwLockReadGuard<'_, T> {
11 self.read().unwrap()
12 }
13
14 fn write_or_panic(&self) -> RwLockWriteGuard<'_, T> {
15 self.write().unwrap()
16 }
17}