diff options
author | HampusM <hampus@hampusmat.com> | 2025-06-07 20:23:34 +0200 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2025-06-07 20:23:34 +0200 |
commit | aeed1b1ff3e34fe719a2f7e6097584b99a673ded (patch) | |
tree | 98158913fa3d1482358a21426bcbbf4312afe02f | |
parent | caf56d34449b471169b7c71eddabad230449dfe3 (diff) |
refactor(ecs): make entity::Handle not hold world reference
-rw-r--r-- | ecs/src/entity.rs | 9 | ||||
-rw-r--r-- | ecs/src/pair.rs | 2 | ||||
-rw-r--r-- | ecs/src/query/flexible.rs | 4 |
3 files changed, 4 insertions, 11 deletions
diff --git a/ecs/src/entity.rs b/ecs/src/entity.rs index 196bd01..4496a2b 100644 --- a/ecs/src/entity.rs +++ b/ecs/src/entity.rs @@ -19,7 +19,6 @@ use crate::{EntityComponentRef, World}; #[derive(Debug)] pub struct Handle<'a> { - _world: &'a World, archetype: &'a Archetype, entity: &'a ArchetypeEntity, } @@ -97,13 +96,9 @@ impl<'a> Handle<'a> } } - pub(crate) fn new( - world: &'a World, - archetype: &'a Archetype, - entity: &'a ArchetypeEntity, - ) -> Self + pub(crate) fn new(archetype: &'a Archetype, entity: &'a ArchetypeEntity) -> Self { - Self { _world: world, archetype, entity } + Self { archetype, entity } } } diff --git a/ecs/src/pair.rs b/ecs/src/pair.rs index 2055d5e..4ff4995 100644 --- a/ecs/src/pair.rs +++ b/ecs/src/pair.rs @@ -140,7 +140,7 @@ impl Handle<'_> unreachable!(); }; - Some(EntityHandle::new(self.world, archetype, archetype_entity)) + Some(EntityHandle::new(archetype, archetype_entity)) } } diff --git a/ecs/src/query/flexible.rs b/ecs/src/query/flexible.rs index 6d65ee0..add30b0 100644 --- a/ecs/src/query/flexible.rs +++ b/ecs/src/query/flexible.rs @@ -22,7 +22,6 @@ impl<'world, const MAX_TERM_CNT: usize> Query<'world, MAX_TERM_CNT> pub fn iter(&self) -> Iter<'_> { Iter { - world: self.world, iter: self .world .data @@ -59,7 +58,6 @@ impl<'query, const MAX_TERM_CNT: usize> IntoIterator for &'query Query<'_, MAX_T pub struct Iter<'query> { - world: &'query World, iter: QueryEntityIter<'query>, } @@ -71,7 +69,7 @@ impl<'query> Iterator for Iter<'query> { let (archetype, entity) = self.iter.next()?; - Some(EntityHandle::new(self.world, archetype, entity)) + Some(EntityHandle::new(archetype, entity)) } } |