Skip to content

Commit

Permalink
format
Browse files Browse the repository at this point in the history
  • Loading branch information
mattwparas committed Dec 28, 2024
1 parent 13d5994 commit c8651a9
Showing 1 changed file with 88 additions and 24 deletions.
112 changes: 88 additions & 24 deletions crates/steel-core/src/gc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -139,10 +139,22 @@ pub mod shared {
}

impl<T> ShareableMut<T> for Rc<RefCell<T>> {
type ShareableRead<'a> = Ref<'a, T> where T: 'a;
type ShareableWrite<'a> = RefMut<'a, T> where T: 'a;
type TryReadResult<'a> = Result<Ref<'a, T>, BorrowError> where T: 'a;
type TryWriteResult<'a> = Result<RefMut<'a, T>, BorrowMutError> where T: 'a;
type ShareableRead<'a>
= Ref<'a, T>
where
T: 'a;
type ShareableWrite<'a>
= RefMut<'a, T>
where
T: 'a;
type TryReadResult<'a>
= Result<Ref<'a, T>, BorrowError>
where
T: 'a;
type TryWriteResult<'a>
= Result<RefMut<'a, T>, BorrowMutError>
where
T: 'a;

fn read<'a>(&'a self) -> Self::ShareableRead<'a> {
Rc::deref(self).borrow()
Expand All @@ -162,10 +174,22 @@ pub mod shared {
}

impl<T> ShareableMut<T> for Gc<RefCell<T>> {
type ShareableRead<'a> = Ref<'a, T> where T: 'a;
type ShareableWrite<'a> = RefMut<'a, T> where T: 'a;
type TryReadResult<'a> = Result<Ref<'a, T>, BorrowError> where T: 'a;
type TryWriteResult<'a> = Result<RefMut<'a, T>, BorrowMutError> where T: 'a;
type ShareableRead<'a>
= Ref<'a, T>
where
T: 'a;
type ShareableWrite<'a>
= RefMut<'a, T>
where
T: 'a;
type TryReadResult<'a>
= Result<Ref<'a, T>, BorrowError>
where
T: 'a;
type TryWriteResult<'a>
= Result<RefMut<'a, T>, BorrowMutError>
where
T: 'a;

fn read<'a>(&'a self) -> Self::ShareableRead<'a> {
Gc::deref(self).borrow()
Expand All @@ -185,16 +209,26 @@ pub mod shared {
}

impl<T> ShareableMut<T> for Arc<RwLock<T>> {
type ShareableRead<'a> = RwLockReadGuard<'a, T> where T: 'a;
type ShareableWrite<'a> = RwLockWriteGuard<'a, T> where T: 'a;
type ShareableRead<'a>
= RwLockReadGuard<'a, T>
where
T: 'a;
type ShareableWrite<'a>
= RwLockWriteGuard<'a, T>
where
T: 'a;
// type TryReadResult<'a>
// = TryLockResult<RwLockReadGuard<'a, T>> where T: 'a;
type TryReadResult<'a>
= Result<RwLockReadGuard<'a, T>, ()> where T: 'a;
= Result<RwLockReadGuard<'a, T>, ()>
where
T: 'a;
// type TryWriteResult<'a>
// = TryLockResult<RwLockWriteGuard<'a, T>> where T: 'a;
type TryWriteResult<'a>
= Result<RwLockWriteGuard<'a, T>, ()> where T: 'a;
= Result<RwLockWriteGuard<'a, T>, ()>
where
T: 'a;

fn read<'a>(&'a self) -> Self::ShareableRead<'a> {
Arc::deref(self).read()
Expand Down Expand Up @@ -222,16 +256,26 @@ pub mod shared {
}

impl<T> ShareableMut<T> for Gc<RwLock<T>> {
type ShareableRead<'a> = RwLockReadGuard<'a, T> where T: 'a;
type ShareableWrite<'a> = RwLockWriteGuard<'a, T> where T: 'a;
type ShareableRead<'a>
= RwLockReadGuard<'a, T>
where
T: 'a;
type ShareableWrite<'a>
= RwLockWriteGuard<'a, T>
where
T: 'a;
// type TryReadResult<'a>
// = TryLockResult<RwLockReadGuard<'a, T>> where T: 'a;
// type TryWriteResult<'a>
// = TryLockResult<RwLockWriteGuard<'a, T>> where T: 'a;
type TryReadResult<'a>
= Result<RwLockReadGuard<'a, T>, ()> where T: 'a;
= Result<RwLockReadGuard<'a, T>, ()>
where
T: 'a;
type TryWriteResult<'a>
= Result<RwLockWriteGuard<'a, T>, ()> where T: 'a;
= Result<RwLockWriteGuard<'a, T>, ()>
where
T: 'a;

fn read<'a>(&'a self) -> Self::ShareableRead<'a> {
Gc::deref(self).read()
Expand Down Expand Up @@ -259,12 +303,22 @@ pub mod shared {
}

impl<T> ShareableMut<T> for Arc<Mutex<T>> {
type ShareableRead<'a> = MutexGuard<'a, T> where T: 'a;
type ShareableWrite<'a> = MutexGuard<'a, T> where T: 'a;
type ShareableRead<'a>
= MutexGuard<'a, T>
where
T: 'a;
type ShareableWrite<'a>
= MutexGuard<'a, T>
where
T: 'a;
type TryReadResult<'a>
= TryLockResult<MutexGuard<'a, T>> where T: 'a;
= TryLockResult<MutexGuard<'a, T>>
where
T: 'a;
type TryWriteResult<'a>
= TryLockResult<MutexGuard<'a, T>> where T: 'a;
= TryLockResult<MutexGuard<'a, T>>
where
T: 'a;

fn read<'a>(&'a self) -> Self::ShareableRead<'a> {
Arc::deref(self)
Expand All @@ -288,12 +342,22 @@ pub mod shared {
}

impl<T> ShareableMut<T> for Gc<Mutex<T>> {
type ShareableRead<'a> = MutexGuard<'a, T> where T: 'a;
type ShareableWrite<'a> = MutexGuard<'a, T> where T: 'a;
type ShareableRead<'a>
= MutexGuard<'a, T>
where
T: 'a;
type ShareableWrite<'a>
= MutexGuard<'a, T>
where
T: 'a;
type TryReadResult<'a>
= TryLockResult<MutexGuard<'a, T>> where T: 'a;
= TryLockResult<MutexGuard<'a, T>>
where
T: 'a;
type TryWriteResult<'a>
= TryLockResult<MutexGuard<'a, T>> where T: 'a;
= TryLockResult<MutexGuard<'a, T>>
where
T: 'a;

fn read<'a>(&'a self) -> Self::ShareableRead<'a> {
Gc::deref(self)
Expand Down

0 comments on commit c8651a9

Please sign in to comment.