diff options
Diffstat (limited to 'engine-ecs/src/component/storage.rs')
| -rw-r--r-- | engine-ecs/src/component/storage.rs | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/engine-ecs/src/component/storage.rs b/engine-ecs/src/component/storage.rs index d4457bb..e77cfa3 100644 --- a/engine-ecs/src/component/storage.rs +++ b/engine-ecs/src/component/storage.rs @@ -17,7 +17,7 @@ use crate::component::storage::graph::{ ArchetypeEdges, Graph, }; -use crate::uid::{Kind as UidKind, Uid}; +use crate::uid::Uid; use crate::util::{BorrowedOrOwned, Either, StreamingIterator, VecExt}; pub mod archetype; @@ -35,21 +35,18 @@ impl ArchetypeSearchTerms<'_> { fn excluded_contains(&self, comp_id: Uid) -> bool { - let comp_id_kind = comp_id.kind(); - debug_assert!( - comp_id_kind == UidKind::Component - || (comp_id_kind == UidKind::Pair - && comp_id.target_component() != Uid::wildcard()) + !comp_id.is_pair() + || (comp_id.is_pair() && comp_id.target() != Uid::wildcard()) ); let is_found = self.excluded_components.binary_search(&comp_id).is_ok(); - if !is_found && comp_id_kind == UidKind::Pair { + if !is_found && comp_id.is_pair() { return self.excluded_components.iter().any(|excluded_comp_id| { - excluded_comp_id.kind() == UidKind::Pair + excluded_comp_id.is_pair() && excluded_comp_id.has_same_relation_as(comp_id) - && excluded_comp_id.target_component() == Uid::wildcard() + && excluded_comp_id.target() == Uid::wildcard() }); } @@ -107,8 +104,8 @@ impl Storage .push(ImaginaryArchetype { id: ArchetypeId::new(search_terms.required_components.iter().filter( |required_comp_id| { - required_comp_id.kind() != UidKind::Pair - || required_comp_id.target_component() != Uid::wildcard() + !required_comp_id.is_pair() + || required_comp_id.target() != Uid::wildcard() }, )), component_ids: search_terms @@ -116,8 +113,8 @@ impl Storage .iter() .copied() .filter(|required_comp_id| { - required_comp_id.kind() != UidKind::Pair - || required_comp_id.target_component() != Uid::wildcard() + !required_comp_id.is_pair() + || required_comp_id.target() != Uid::wildcard() }) .collect(), }); @@ -147,7 +144,7 @@ impl Storage pub fn create_entity(&mut self, uid: Uid) -> Result<(), EntityAlreadyExistsError> { - debug_assert_eq!(uid.kind(), UidKind::Entity); + debug_assert!(!uid.is_pair()); if self.entity_archetype_lookup.contains_key(&uid) { return Err(EntityAlreadyExistsError); @@ -768,14 +765,14 @@ mod tests { use crate::component::storage::archetype::Id as ArchetypeId; use crate::component::storage::Storage; - use crate::uid::{Kind as UidKind, Uid}; + use crate::uid::Uid; #[test] fn create_entity_works() { let mut new_storage = Storage::default(); - let uid = Uid::new_unique(UidKind::Entity); + let uid = Uid::new_unique(); new_storage.create_entity(uid).expect("Expected Ok"); |
