pub struct SyncStorage { /* private fields */ }Available on crate feature
prelude only.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
Source§type Ref<'a, R: 'a + ?Sized> = GenerationalRef<MappedRwLockReadGuard<'a, RawRwLock, R>>
type Ref<'a, R: 'a + ?Sized> = GenerationalRef<MappedRwLockReadGuard<'a, RawRwLock, R>>
The reference this storage type returns.
Source§type Mut<'a, W: 'a + ?Sized> = GenerationalRefMut<MappedRwLockWriteGuard<'a, RawRwLock, W>>
type Mut<'a, W: 'a + ?Sized> = GenerationalRefMut<MappedRwLockWriteGuard<'a, RawRwLock, W>>
The mutable reference this storage type returns.
Source§fn downcast_lifetime_ref<'a, 'b, T>(
ref_: <SyncStorage as AnyStorage>::Ref<'a, T>,
) -> <SyncStorage as AnyStorage>::Ref<'b, T>where
'a: 'b,
T: 'b + ?Sized,
fn downcast_lifetime_ref<'a, 'b, T>(
ref_: <SyncStorage as AnyStorage>::Ref<'a, T>,
) -> <SyncStorage as AnyStorage>::Ref<'b, T>where
'a: 'b,
T: 'b + ?Sized,
Downcast a reference in a Ref to a more specific lifetime Read more
Source§fn downcast_lifetime_mut<'a, 'b, T>(
mut_: <SyncStorage as AnyStorage>::Mut<'a, T>,
) -> <SyncStorage as AnyStorage>::Mut<'b, T>where
'a: 'b,
T: 'a + ?Sized,
fn downcast_lifetime_mut<'a, 'b, T>(
mut_: <SyncStorage as AnyStorage>::Mut<'a, T>,
) -> <SyncStorage as AnyStorage>::Mut<'b, T>where
'a: 'b,
T: 'a + ?Sized,
Downcast a mutable reference in a RefMut to a more specific lifetime Read more
Source§fn map<T, U>(
ref_: <SyncStorage as AnyStorage>::Ref<'_, T>,
f: impl FnOnce(&T) -> &U,
) -> <SyncStorage as AnyStorage>::Ref<'_, U>
fn map<T, U>( ref_: <SyncStorage as AnyStorage>::Ref<'_, T>, f: impl FnOnce(&T) -> &U, ) -> <SyncStorage as AnyStorage>::Ref<'_, U>
Map the ref.
Source§fn map_mut<T, U>(
mut_ref: <SyncStorage as AnyStorage>::Mut<'_, T>,
f: impl FnOnce(&mut T) -> &mut U,
) -> <SyncStorage as AnyStorage>::Mut<'_, U>
fn map_mut<T, U>( mut_ref: <SyncStorage as AnyStorage>::Mut<'_, T>, f: impl FnOnce(&mut T) -> &mut U, ) -> <SyncStorage as AnyStorage>::Mut<'_, U>
Map the mutable ref.
Source§fn try_map<I, U>(
ref_: <SyncStorage as AnyStorage>::Ref<'_, I>,
f: impl FnOnce(&I) -> Option<&U>,
) -> Option<<SyncStorage as AnyStorage>::Ref<'_, U>>
fn try_map<I, U>( ref_: <SyncStorage as AnyStorage>::Ref<'_, I>, f: impl FnOnce(&I) -> Option<&U>, ) -> Option<<SyncStorage as AnyStorage>::Ref<'_, U>>
Try to map the ref.
Source§fn try_map_mut<I, U>(
mut_ref: <SyncStorage as AnyStorage>::Mut<'_, I>,
f: impl FnOnce(&mut I) -> Option<&mut U>,
) -> Option<<SyncStorage as AnyStorage>::Mut<'_, U>>
fn try_map_mut<I, U>( mut_ref: <SyncStorage as AnyStorage>::Mut<'_, I>, f: impl FnOnce(&mut I) -> Option<&mut U>, ) -> Option<<SyncStorage as AnyStorage>::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 recycle(pointer: GenerationalPointer<SyncStorage>)
fn recycle(pointer: GenerationalPointer<SyncStorage>)
Recycle a memory location. This will drop the memory location and return it to the runtime.
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> Storage<T> for SyncStorage
impl<T> Storage<T> for SyncStorage
Source§fn try_read(
pointer: GenerationalPointer<SyncStorage>,
) -> Result<<SyncStorage as AnyStorage>::Ref<'static, T>, BorrowError>
fn try_read( pointer: GenerationalPointer<SyncStorage>, ) -> Result<<SyncStorage as AnyStorage>::Ref<'static, T>, BorrowError>
Try to read the value. Returns None if the value is no longer valid.
Source§fn try_write(
pointer: GenerationalPointer<SyncStorage>,
) -> Result<<SyncStorage as AnyStorage>::Mut<'static, T>, BorrowMutError>
fn try_write( pointer: GenerationalPointer<SyncStorage>, ) -> Result<<SyncStorage as AnyStorage>::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<SyncStorage>
fn new( value: T, caller: &'static Location<'static>, ) -> GenerationalPointer<SyncStorage>
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<SyncStorage>
fn new_rc( value: T, caller: &'static Location<'static>, ) -> GenerationalPointer<SyncStorage>
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<SyncStorage>,
) -> Result<GenerationalPointer<SyncStorage>, BorrowError>
fn new_reference( location: GenerationalPointer<SyncStorage>, ) -> Result<GenerationalPointer<SyncStorage>, BorrowError>
Reference another location if the location is valid Read more
Source§fn change_reference(
location: GenerationalPointer<SyncStorage>,
other: GenerationalPointer<SyncStorage>,
) -> Result<(), BorrowError>
fn change_reference( location: GenerationalPointer<SyncStorage>, other: GenerationalPointer<SyncStorage>, ) -> Result<(), BorrowError>
Change the reference a signal is pointing to Read more
impl<T> BoxedSignalStorage<T> for SyncStoragewhere
T: 'static + ?Sized,
impl<T> CreateBoxedSignalStorage<T> for SyncStorage
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> InitializeFromFunction<T> for T
impl<T> InitializeFromFunction<T> for T
Source§fn initialize_from_function(f: fn() -> T) -> T
fn initialize_from_function(f: fn() -> T) -> T
Create an instance of this type from an initialization function
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> MaybeBoxed<Box<T>> for T
impl<T> MaybeBoxed<Box<T>> for T
Source§fn maybe_boxed(self) -> Box<T>
fn maybe_boxed(self) -> Box<T>
Convert
Source§impl<T> MaybeBoxed<T> for T
impl<T> MaybeBoxed<T> for T
Source§fn maybe_boxed(self) -> T
fn maybe_boxed(self) -> T
Convert
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<Ret> SpawnIfAsync<(), Ret> for Ret
impl<Ret> SpawnIfAsync<(), Ret> for Ret
Source§impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
Source§fn super_from(input: T) -> O
fn super_from(input: T) -> O
Convert from a type to another type.
Source§impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
Source§fn super_into(self) -> O
fn super_into(self) -> O
Convert from a type to another type.