diff --git a/crates/bevy_ecs/src/entity/entity_set.rs b/crates/bevy_ecs/src/entity/entity_set.rs index 9e1a92d8f1..d93debcbc0 100644 --- a/crates/bevy_ecs/src/entity/entity_set.rs +++ b/crates/bevy_ecs/src/entity/entity_set.rs @@ -13,7 +13,7 @@ use core::{ option, result, }; -use super::{Entity, UniqueEntitySlice}; +use super::{unique_slice::UniqueEntitySlice, Entity}; use bevy_platform_support::sync::Arc; diff --git a/crates/bevy_ecs/src/entity/index_map.rs b/crates/bevy_ecs/src/entity/index_map.rs index faf81c11dc..7207740ce8 100644 --- a/crates/bevy_ecs/src/entity/index_map.rs +++ b/crates/bevy_ecs/src/entity/index_map.rs @@ -1,3 +1,7 @@ +//! Contains the [`EntityIndexMap`] type, an [`IndexMap`] pre-configured to use [`EntityHash`] hashing. +//! +//! This module is a lightweight wrapper around `indexmap`'s [`IndexMap`] that is more performant for [`Entity`] keys. + use core::{ fmt::{self, Debug, Formatter}, hash::BuildHasher, diff --git a/crates/bevy_ecs/src/entity/index_set.rs b/crates/bevy_ecs/src/entity/index_set.rs index 7a7cecda82..b7cb5f82ea 100644 --- a/crates/bevy_ecs/src/entity/index_set.rs +++ b/crates/bevy_ecs/src/entity/index_set.rs @@ -1,3 +1,7 @@ +//! Contains the [`EntityIndexSet`] type, a [`IndexSet`] pre-configured to use [`EntityHash`] hashing. +//! +//! This module is a lightweight wrapper around `indexmap`'ss [`IndexSet`] that is more performant for [`Entity`] keys. + use core::{ fmt::{self, Debug, Formatter}, hash::BuildHasher, diff --git a/crates/bevy_ecs/src/entity/mod.rs b/crates/bevy_ecs/src/entity/mod.rs index bfcd792912..fe6623e2cd 100644 --- a/crates/bevy_ecs/src/entity/mod.rs +++ b/crates/bevy_ecs/src/entity/mod.rs @@ -50,29 +50,18 @@ pub use entity_set::*; pub use map_entities::*; pub use visit_entities::*; -mod unique_vec; - -pub use unique_vec::*; - mod hash; pub use hash::*; pub mod hash_map; pub mod hash_set; -mod index_map; -mod index_set; +pub mod index_map; +pub mod index_set; -pub use index_map::EntityIndexMap; -pub use index_set::EntityIndexSet; - -mod unique_slice; - -pub use unique_slice::*; - -mod unique_array; - -pub use unique_array::UniqueEntityArray; +pub mod unique_array; +pub mod unique_slice; +pub mod unique_vec; use crate::{ archetype::{ArchetypeId, ArchetypeRow}, diff --git a/crates/bevy_ecs/src/entity/unique_array.rs b/crates/bevy_ecs/src/entity/unique_array.rs index ffc2e91edd..7bbf8e97df 100644 --- a/crates/bevy_ecs/src/entity/unique_array.rs +++ b/crates/bevy_ecs/src/entity/unique_array.rs @@ -1,3 +1,5 @@ +//! A wrapper around entity arrays with a uniqueness invariant. + use core::{ array, borrow::{Borrow, BorrowMut}, @@ -18,7 +20,10 @@ use alloc::{ use bevy_platform_support::sync::Arc; -use super::{unique_slice, TrustedEntityBorrow, UniqueEntityIter, UniqueEntitySlice}; +use super::{ + unique_slice::{self, UniqueEntitySlice}, + TrustedEntityBorrow, UniqueEntityIter, +}; /// An array that contains only unique entities. /// @@ -522,6 +527,9 @@ impl, U: TrustedEntityBorrow, const N: usize> PartialEq = UniqueEntityIter>; impl UniqueEntityIter> { diff --git a/crates/bevy_ecs/src/entity/unique_slice.rs b/crates/bevy_ecs/src/entity/unique_slice.rs index 12a2862932..a1db06b283 100644 --- a/crates/bevy_ecs/src/entity/unique_slice.rs +++ b/crates/bevy_ecs/src/entity/unique_slice.rs @@ -1,3 +1,5 @@ +//! A wrapper around entity slices with a uniqueness invariant. + use core::{ array::TryFromSliceError, borrow::Borrow, @@ -23,8 +25,9 @@ use alloc::{ use bevy_platform_support::sync::Arc; use super::{ - unique_vec, EntitySet, EntitySetIterator, FromEntitySetIterator, TrustedEntityBorrow, - UniqueEntityArray, UniqueEntityIter, UniqueEntityVec, + unique_array::UniqueEntityArray, + unique_vec::{self, UniqueEntityVec}, + EntitySet, EntitySetIterator, FromEntitySetIterator, TrustedEntityBorrow, UniqueEntityIter, }; /// A slice that contains only unique entities. diff --git a/crates/bevy_ecs/src/entity/unique_vec.rs b/crates/bevy_ecs/src/entity/unique_vec.rs index 936df56b07..38c484cae3 100644 --- a/crates/bevy_ecs/src/entity/unique_vec.rs +++ b/crates/bevy_ecs/src/entity/unique_vec.rs @@ -1,3 +1,5 @@ +//! A wrapper around entity [`Vec`]s with a uniqueness invariant. + use core::{ borrow::{Borrow, BorrowMut}, mem::MaybeUninit, @@ -18,8 +20,9 @@ use alloc::{ use bevy_platform_support::sync::Arc; use super::{ - unique_slice, EntitySet, FromEntitySetIterator, TrustedEntityBorrow, UniqueEntityArray, - UniqueEntityIter, UniqueEntitySlice, + unique_array::UniqueEntityArray, + unique_slice::{self, UniqueEntitySlice}, + EntitySet, FromEntitySetIterator, TrustedEntityBorrow, UniqueEntityIter, }; /// A `Vec` that contains only unique entities. diff --git a/crates/bevy_ecs/src/query/par_iter.rs b/crates/bevy_ecs/src/query/par_iter.rs index 0805774f8c..e0a1a5b2f0 100644 --- a/crates/bevy_ecs/src/query/par_iter.rs +++ b/crates/bevy_ecs/src/query/par_iter.rs @@ -1,7 +1,7 @@ use crate::{ batching::BatchingStrategy, component::Tick, - entity::{EntityBorrow, TrustedEntityBorrow, UniqueEntityVec}, + entity::{unique_vec::UniqueEntityVec, EntityBorrow, TrustedEntityBorrow}, world::unsafe_world_cell::UnsafeWorldCell, }; @@ -363,7 +363,7 @@ impl<'w, 's, D: QueryData, F: QueryFilter, E: TrustedEntityBorrow + Sync> /// /// ``` /// use bevy_utils::Parallel; - /// use crate::{bevy_ecs::{prelude::{Component, Res, Resource, Entity}, entity::UniqueEntityVec, system::Query}}; + /// use crate::{bevy_ecs::{prelude::{Component, Res, Resource, Entity}, entity::unique_vec::UniqueEntityVec, system::Query}}; /// # use core::slice; /// # use crate::bevy_ecs::entity::UniqueEntityIter; /// # fn some_expensive_operation(_item: &T) -> usize { diff --git a/crates/bevy_ecs/src/query/state.rs b/crates/bevy_ecs/src/query/state.rs index 604475eb3a..f9323e8076 100644 --- a/crates/bevy_ecs/src/query/state.rs +++ b/crates/bevy_ecs/src/query/state.rs @@ -11,7 +11,7 @@ use crate::{ }; #[cfg(all(not(target_arch = "wasm32"), feature = "multi_threaded"))] -use crate::entity::{TrustedEntityBorrow, UniqueEntitySlice}; +use crate::entity::{unique_slice::UniqueEntitySlice, TrustedEntityBorrow}; use alloc::vec::Vec; use core::{fmt, ptr};