generational_box

Struct 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

Source§

type Ref<'a, R: ?Sized + 'static> = GenerationalRef<MappedRwLockReadGuard<'a, RawRwLock, R>>

The reference this storage type returns.
Source§

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>

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>

Downcast a mutable reference in a RefMut to a more specific lifetime Read more
Source§

fn map<T: ?Sized + 'static, U: ?Sized + 'static>( ref_: Self::Ref<'_, T>, f: impl FnOnce(&T) -> &U, ) -> Self::Ref<'_, U>

Map the ref.
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>

Map the mutable ref.
Source§

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>>

Try to map the mutable ref.
Source§

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 recycle(pointer: GenerationalPointer<Self>)

Recycle a memory location. This will drop the memory location and return it to the runtime.
Source§

fn owner() -> Owner<Self>

Create a new owner. The owner will be responsible for dropping all of the generational boxes that it creates.
Source§

impl Default for SyncStorage

Source§

fn default() -> SyncStorage

Returns the “default value” for a type. Read more
Source§

impl<T: Sync + Send + 'static> Storage<T> for SyncStorage

Source§

fn try_read( pointer: GenerationalPointer<Self>, ) -> Result<Self::Ref<'static, T>, BorrowError>

Try to read the value. Returns None if the value is no longer valid.
Source§

fn try_write( pointer: GenerationalPointer<Self>, ) -> Result<Self::Mut<'static, T>, BorrowMutError>

Try to write the value. Returns None if the value is no longer valid.
Source§

fn new( value: T, caller: &'static Location<'static>, ) -> GenerationalPointer<Self>

Create a new memory location. This will either create a new memory location or recycle an old one.
Source§

fn new_rc( value: T, caller: &'static Location<'static>, ) -> GenerationalPointer<Self>

Create a new reference counted memory location. This will either create a new memory location or recycle an old one.
Source§

fn new_reference( location: GenerationalPointer<Self>, ) -> BorrowResult<GenerationalPointer<Self>>

Reference another location if the location is valid Read more
Source§

fn change_reference( location: GenerationalPointer<Self>, other: GenerationalPointer<Self>, ) -> BorrowResult

Change the reference a signal is pointing to Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more