This is just an
UnsafeCell, except it implements
UnsafeCell doesn’t implement
Sync, to prevent accidental mis-use.
You can use
SyncUnsafeCell instead of
UnsafeCell to allow it to be
shared between threads, if that’s intentional.
Providing proper synchronization is still the task of the user,
making this type just as unsafe to use.
UnsafeCell for details.
Gets a mutable pointer to the wrapped value.
This can be cast to a pointer of any kind.
Ensure that the access is unique (no active references, mutable or not)
when casting to
&mut T, and ensure that there are no mutations
or mutable aliases going on when casting to
Returns a mutable reference to the underlying data.
This call borrows the
SyncUnsafeCell mutably (at compile-time) which
guarantees that we possess the only reference.
SyncUnsafeCell, with the
Default value for T.
Creates a new
SyncUnsafeCell<T> containing the given value.
Auto Trait Implementations§
Returns the argument unchanged.