diff --git a/schemius/src/core/accessor.rs b/schemius/src/core/accessor.rs index afeb919..0175ed7 100644 --- a/schemius/src/core/accessor.rs +++ b/schemius/src/core/accessor.rs @@ -1,9 +1,9 @@ use core::fmt::Debug; use std::{ - cell::{Ref, RefCell, RefMut}, + cell::RefCell, ops::{Deref, DerefMut}, rc::Rc, - sync::{Arc, Mutex, MutexGuard}, + sync::{Arc, Mutex}, }; pub trait Accessor { @@ -23,10 +23,10 @@ impl Accessor for BaseAccessor { fn new(src: T) -> Self { Self(Rc::new(RefCell::new(src))) } - fn access(&self) -> Ref { + fn access(&self) -> impl Deref { self.0.try_borrow().unwrap() } - fn access_mut(&self) -> RefMut { + fn access_mut(&self) -> impl DerefMut { self.0.try_borrow_mut().unwrap() } fn replace(&self, src: T) -> T { @@ -38,10 +38,10 @@ impl Accessor for ThreadSafeAccessor { fn new(src: T) -> Self { Self(Arc::new(Mutex::new(src))) } - fn access(&self) -> MutexGuard { + fn access(&self) -> impl Deref { self.0.try_lock().unwrap() } - fn access_mut(&self) -> MutexGuard { + fn access_mut(&self) -> impl DerefMut { self.0.try_lock().unwrap() } fn replace(&self, src: T) -> T {