diff --git a/crates/bevy_ecs/src/query/access.rs b/crates/bevy_ecs/src/query/access.rs index f735f36580..25c1f39054 100644 --- a/crates/bevy_ecs/src/query/access.rs +++ b/crates/bevy_ecs/src/query/access.rs @@ -115,6 +115,18 @@ impl Access { .map(SparseSetIndex::get_sparse_set_index) .collect() } + + /// Returns all read accesses. + pub fn reads(&self) -> impl Iterator + '_ { + self.reads_and_writes + .difference(&self.writes) + .map(T::get_sparse_set_index) + } + + /// Returns all write accesses. + pub fn writes(&self) -> impl Iterator + '_ { + self.writes.ones().map(T::get_sparse_set_index) + } } #[derive(Clone, Eq, PartialEq)]