Struct generational_box::SyncStorage
source · pub struct SyncStorage(/* private fields */);
Expand description
A thread safe storage. This is slower than the unsync storage, but allows you to share the value between threads.
Trait Implementations§
source§impl AnyStorage for SyncStorage
impl AnyStorage for SyncStorage
§type Ref<'a, R: ?Sized + 'static> = GenerationalRef<MappedRwLockReadGuard<'a, RawRwLock, R>>
type Ref<'a, R: ?Sized + 'static> = GenerationalRef<MappedRwLockReadGuard<'a, RawRwLock, R>>
The reference this storage type returns.
§type Mut<'a, W: ?Sized + 'static> = GenerationalRefMut<MappedRwLockWriteGuard<'a, RawRwLock, W>>
type Mut<'a, W: ?Sized + 'static> = GenerationalRefMut<MappedRwLockWriteGuard<'a, RawRwLock, W>>
The mutable reference this storage type returns.
source§fn downcast_lifetime_ref<'a: 'b, 'b, T: ?Sized + 'static>(
ref_: Self::Ref<'a, T>,
) -> Self::Ref<'b, T>
fn downcast_lifetime_ref<'a: 'b, 'b, T: ?Sized + 'static>( ref_: Self::Ref<'a, T>, ) -> Self::Ref<'b, T>
Downcast a reference in a Ref to a more specific lifetime Read more
source§fn downcast_lifetime_mut<'a: 'b, 'b, T: ?Sized + 'static>(
mut_: Self::Mut<'a, T>,
) -> Self::Mut<'b, T>
fn downcast_lifetime_mut<'a: 'b, 'b, T: ?Sized + 'static>( mut_: Self::Mut<'a, T>, ) -> Self::Mut<'b, T>
Downcast a mutable reference in a RefMut to a more specific lifetime Read more
source§fn try_map<I: ?Sized + 'static, U: ?Sized + 'static>(
ref_: Self::Ref<'_, I>,
f: impl FnOnce(&I) -> Option<&U>,
) -> Option<Self::Ref<'_, U>>
fn try_map<I: ?Sized + 'static, U: ?Sized + 'static>( ref_: Self::Ref<'_, I>, f: impl FnOnce(&I) -> Option<&U>, ) -> Option<Self::Ref<'_, U>>
Try to map the ref.
source§fn try_map_mut<I: ?Sized + 'static, U: ?Sized + 'static>(
mut_ref: Self::Mut<'_, I>,
f: impl FnOnce(&mut I) -> Option<&mut U>,
) -> Option<Self::Mut<'_, U>>
fn try_map_mut<I: ?Sized + 'static, U: ?Sized + 'static>( mut_ref: Self::Mut<'_, I>, f: impl FnOnce(&mut I) -> Option<&mut U>, ) -> Option<Self::Mut<'_, U>>
Try to map the mutable ref.
source§fn data_ptr(&self) -> *const ()
fn data_ptr(&self) -> *const ()
Get the data pointer. No guarantees are made about the data pointer. It should only be used for debugging.
source§fn manually_drop(&self) -> bool
fn manually_drop(&self) -> bool
Drop the value from the storage. This will return true if the value was taken.
source§fn claim() -> MemoryLocation<Self>
fn claim() -> MemoryLocation<Self>
Claim a new memory location. This will either create a new memory location or recycle an old one.
source§fn recycle(location: &MemoryLocation<Self>)
fn recycle(location: &MemoryLocation<Self>)
Recycle a memory location. This will drop the memory location and return it to the runtime.
source§fn map_mut<T: ?Sized + 'static, U: ?Sized + 'static>(
mut_ref: Self::Mut<'_, T>,
f: impl FnOnce(&mut T) -> &mut U,
) -> Self::Mut<'_, U>
fn map_mut<T: ?Sized + 'static, U: ?Sized + 'static>( mut_ref: Self::Mut<'_, T>, f: impl FnOnce(&mut T) -> &mut U, ) -> Self::Mut<'_, U>
Map the mutable ref.
source§impl Default for SyncStorage
impl Default for SyncStorage
source§fn default() -> SyncStorage
fn default() -> SyncStorage
Returns the “default value” for a type. Read more
source§impl<T: Sync + Send + 'static> Storage<T> for SyncStorage
impl<T: Sync + Send + 'static> Storage<T> for SyncStorage
source§fn try_read(
&'static self,
at: GenerationalRefBorrowInfo,
) -> Result<Self::Ref<'static, T>, BorrowError>
fn try_read( &'static self, at: GenerationalRefBorrowInfo, ) -> Result<Self::Ref<'static, T>, BorrowError>
Try to read the value. Returns None if the value is no longer valid.
source§fn try_write(
&'static self,
at: GenerationalRefMutBorrowInfo,
) -> Result<Self::Mut<'static, T>, BorrowMutError>
fn try_write( &'static self, at: GenerationalRefMutBorrowInfo, ) -> Result<Self::Mut<'static, T>, BorrowMutError>
Try to write the value. Returns None if the value is no longer valid.
Auto Trait Implementations§
impl !Freeze for SyncStorage
impl !RefUnwindSafe for SyncStorage
impl Send for SyncStorage
impl Sync for SyncStorage
impl Unpin for SyncStorage
impl !UnwindSafe for SyncStorage
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more