pub struct UPSafeCell<T> {
inner: RefCell<T>,
}
Expand description
Wrap a static data structure inside it so that we are
able to access it without any unsafe
.
We should only use it in uniprocessor.
In order to get mutable reference of inner data, call
exclusive_access
.
Fields
inner: RefCell<T>
inner data
Implementations
sourceimpl<T> UPSafeCell<T>
impl<T> UPSafeCell<T>
sourcepub unsafe fn new(value: T) -> Self
pub unsafe fn new(value: T) -> Self
User is responsible to guarantee that inner struct is only used in uniprocessor.
sourcepub fn exclusive_access(&self) -> RefMut<'_, T>
pub fn exclusive_access(&self) -> RefMut<'_, T>
Exclusive access inner data in UPSafeCell. Panic if the data has been borrowed.
Trait Implementations
impl<T> Sync for UPSafeCell<T>
Auto Trait Implementations
impl<T> !RefUnwindSafe for UPSafeCell<T>
impl<T> Send for UPSafeCell<T> where
T: Send,
impl<T> Unpin for UPSafeCell<T> where
T: Unpin,
impl<T> UnwindSafe for UPSafeCell<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more