Struct specs::storage::DerefFlaggedStorage
source · pub struct DerefFlaggedStorage<C, T = DenseVecStorage<C>> { /* private fields */ }
Expand description
Wrapper storage that tracks modifications, insertions, and removals of
components through an EventChannel
, in a similar manner to
FlaggedStorage
.
Unlike FlaggedStorage
, this storage uses a wrapper type for mutable
accesses that only emits modification events when the component is actually
used mutably. This means that simply performing a mutable join or calling
WriteStorage::get_mut
will not, by itself, trigger a modification event.
Trait Implementations§
source§impl<C, T> Default for DerefFlaggedStorage<C, T>where
T: TryDefault,
impl<C, T> Default for DerefFlaggedStorage<C, T>where T: TryDefault,
source§impl<C, T> Tracked for DerefFlaggedStorage<C, T>
impl<C, T> Tracked for DerefFlaggedStorage<C, T>
source§fn channel(&self) -> &EventChannel<ComponentEvent>
fn channel(&self) -> &EventChannel<ComponentEvent>
Event channel tracking modified/inserted/removed components.
source§fn channel_mut(&mut self) -> &mut EventChannel<ComponentEvent>
fn channel_mut(&mut self) -> &mut EventChannel<ComponentEvent>
Mutable event channel tracking modified/inserted/removed components.
source§fn set_event_emission(&mut self, emit: bool)
fn set_event_emission(&mut self, emit: bool)
Controls the events signal emission.
When this is set to false the events modified/inserted/removed are
not emitted.
source§fn event_emission(&self) -> bool
fn event_emission(&self) -> bool
Returns the actual state of the event emission.
source§impl<C: Component, T: UnprotectedStorage<C>> UnprotectedStorage<C> for DerefFlaggedStorage<C, T>
impl<C: Component, T: UnprotectedStorage<C>> UnprotectedStorage<C> for DerefFlaggedStorage<C, T>
§type AccessMut<'a> = FlaggedAccessMut<'a, <T as UnprotectedStorage<C>>::AccessMut<'a>, C>
where
T: 'a
type AccessMut<'a> = FlaggedAccessMut<'a, <T as UnprotectedStorage<C>>::AccessMut<'a>, C> where T: 'a
The wrapper through with mutable access of a component is performed.
source§unsafe fn clean<B>(&mut self, has: B)where
B: BitSetLike,
unsafe fn clean<B>(&mut self, has: B)where B: BitSetLike,
Clean the storage given a bitset with bits set for valid indices
dropping all existing components. Read more
source§unsafe fn get(&self, id: Index) -> &C
unsafe fn get(&self, id: Index) -> &C
Gets a shared reference to the data associated with an
Index
. Read moresource§unsafe fn get_mut(&mut self, id: Index) -> Self::AccessMut<'_>
unsafe fn get_mut(&mut self, id: Index) -> Self::AccessMut<'_>
Gets mutable access to the the data associated with an
Index
. Read moreAuto Trait Implementations§
impl<C, T = DenseVecStorage<C>> !RefUnwindSafe for DerefFlaggedStorage<C, T>
impl<C, T> Send for DerefFlaggedStorage<C, T>where C: Send, T: Send,
impl<C, T> Sync for DerefFlaggedStorage<C, T>where C: Sync, T: Sync,
impl<C, T> Unpin for DerefFlaggedStorage<C, T>where C: Unpin, T: Unpin,
impl<C, T> UnwindSafe for DerefFlaggedStorage<C, T>where C: UnwindSafe, T: UnwindSafe,
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
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> TryDefault for Twhere
T: Default,
impl<T> TryDefault for Twhere T: Default,
source§fn try_default() -> Result<T, String>
fn try_default() -> Result<T, String>
Tries to create the default.
source§fn unwrap_default() -> Self
fn unwrap_default() -> Self
Calls
try_default
and panics on an error case.