| 35 | |
| 36 | impl<'a, T: ?Sized> BorrowedValue<'a, T> { |
| 37 | pub fn map<U: ?Sized, F>(s: Self, f: F) -> BorrowedValue<'a, U> |
| 38 | where |
| 39 | F: FnOnce(&T) -> &U, |
| 40 | { |
| 41 | match s { |
| 42 | Self::Ref(r) => BorrowedValue::Ref(f(r)), |
| 43 | Self::MuLock(m) => BorrowedValue::MappedMuLock(PyMutexGuard::map_immutable(m, f)), |
| 44 | Self::MappedMuLock(m) => { |
| 45 | BorrowedValue::MappedMuLock(PyImmutableMappedMutexGuard::map(m, f)) |
| 46 | } |
| 47 | Self::ReadLock(r) => BorrowedValue::MappedReadLock(PyRwLockReadGuard::map(r, f)), |
| 48 | Self::MappedReadLock(m) => { |
| 49 | BorrowedValue::MappedReadLock(PyMappedRwLockReadGuard::map(m, f)) |
| 50 | } |
| 51 | } |
| 52 | } |
| 53 | } |
| 54 | |
| 55 | impl<T: ?Sized> Deref for BorrowedValue<'_, T> { |