pub enum IndexRefreshPolicy {
WhenRun,
WhenUsed,
EachFrame,
WhenInserted,
Manual,
}
Expand description
Variants§
WhenRun
Refresh the index whenever a system with an Index
argument is run.
This is a good default for most use cases.
WhenUsed
Refresh the index the first time lookup
is called in each system.
Compared to WhenRun
, this requires an extra check in each lookup
to see if the index needs to be refreshed or not, but saves the overhead of an entire refresh
when lookup
is never called.
EachFrame
Refresh the index once during the First
Schedule
.
To refresh during a different schedule, you should use the Manual
refresh policy and manually add the refresh_index_system
to the desired schedule.
WhenInserted
Use Observers
to refresh the index on a per-entity basis
as components are inserted and removed.
This is best used with Immutable
components, as otherwise,
component mutations will be missed unless you refresh the index manually.
Manual
Trait Implementations§
Source§impl Clone for IndexRefreshPolicy
impl Clone for IndexRefreshPolicy
Source§fn clone(&self) -> IndexRefreshPolicy
fn clone(&self) -> IndexRefreshPolicy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl PartialEq for IndexRefreshPolicy
impl PartialEq for IndexRefreshPolicy
impl Copy for IndexRefreshPolicy
impl Eq for IndexRefreshPolicy
impl StructuralPartialEq for IndexRefreshPolicy
Auto Trait Implementations§
impl Freeze for IndexRefreshPolicy
impl RefUnwindSafe for IndexRefreshPolicy
impl Send for IndexRefreshPolicy
impl Sync for IndexRefreshPolicy
impl Unpin for IndexRefreshPolicy
impl UnwindSafe for IndexRefreshPolicy
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn 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>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which 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)
&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)
&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> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.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>
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>
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 more