bevy_trait_query/one/core/
change_detection.rs1use std::cell::UnsafeCell;
2
3use bevy_ecs::{
4 component::Tick,
5 ptr::ThinSlicePtr,
6 storage::{ComponentSparseSet, SparseSets},
7};
8
9#[derive(Clone, Copy)]
10pub(crate) enum ChangeDetectionStorage<'w> {
11 Uninit,
12 Table {
13 ticks: ThinSlicePtr<'w, UnsafeCell<Tick>>,
18 },
19 SparseSet {
20 components: &'w ComponentSparseSet,
24 },
25}
26#[derive(Clone, Copy)]
27pub struct ChangeDetectionFetch<'w> {
28 pub(crate) storage: ChangeDetectionStorage<'w>,
29 pub(crate) sparse_sets: &'w SparseSets,
30 pub(crate) last_run: Tick,
31 pub(crate) this_run: Tick,
32}