summaryrefslogtreecommitdiff
path: root/engine-ecs/src/component/storage.rs
diff options
context:
space:
mode:
Diffstat (limited to 'engine-ecs/src/component/storage.rs')
-rw-r--r--engine-ecs/src/component/storage.rs29
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");