From e5fec9e52ab400fcaf86819035851d797f8b46b9 Mon Sep 17 00:00:00 2001 From: HampusM Date: Thu, 5 Nov 2026 12:24:38 +0100 Subject: refactor(engine-ecs): remove util::Either & use either crate --- engine-ecs/src/component/storage.rs | 9 +++++---- engine-ecs/src/component/storage/archetype.rs | 11 ++++++----- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'engine-ecs/src/component') diff --git a/engine-ecs/src/component/storage.rs b/engine-ecs/src/component/storage.rs index b208a90..6522d5d 100644 --- a/engine-ecs/src/component/storage.rs +++ b/engine-ecs/src/component/storage.rs @@ -4,6 +4,7 @@ use std::cell::RefCell; use std::fmt::Debug; use std::vec::IntoIter as VecIntoIter; +use either::Either; use hashbrown::HashMap; use crate::component::storage::archetype::{ @@ -20,7 +21,7 @@ use crate::component::storage::graph::{ }; use crate::uid::{PairParams, Uid}; use crate::util::array_vec::ArrayVec; -use crate::util::{BorrowedOrOwned, Either, StreamingIterator, VecExt}; +use crate::util::{BorrowedOrOwned, StreamingIterator, VecExt}; pub mod archetype; @@ -156,7 +157,7 @@ impl Storage if search_terms.contains_conflicting() { return ArchetypeRefIter { storage: self, - pre_iter: Either::B(Vec::new().into_iter()), + pre_iter: Either::Right(Vec::new().into_iter()), dfs_iter: ArchetypeAddEdgeDfsIter::new(&self.graph, &[]), search_terms, }; @@ -189,7 +190,7 @@ impl Storage return ArchetypeRefIter { storage: self, - pre_iter: Either::B(found_archetypes.clone().into_iter()), + pre_iter: Either::Right(found_archetypes.clone().into_iter()), dfs_iter: ArchetypeAddEdgeDfsIter::new(&self.graph, &found_archetypes), search_terms, }; @@ -197,7 +198,7 @@ impl Storage ArchetypeRefIter { storage: self, - pre_iter: Either::A([archetype_id].into_iter()), + pre_iter: Either::Left([archetype_id].into_iter()), dfs_iter: add_edge_recursive_iter, search_terms, } diff --git a/engine-ecs/src/component/storage/archetype.rs b/engine-ecs/src/component/storage/archetype.rs index e72126a..480a1da 100644 --- a/engine-ecs/src/component/storage/archetype.rs +++ b/engine-ecs/src/component/storage/archetype.rs @@ -5,11 +5,12 @@ use std::iter::{Enumerate, Filter, Map, RepeatN, Zip}; use std::option::IntoIter as OptionIntoIter; use std::slice::Iter as SliceIter; +use either::Either; use hashbrown::HashMap; use crate::lock::Lock; use crate::uid::Uid; -use crate::util::{Either, HashMapExt}; +use crate::util::HashMapExt; #[derive(Debug)] pub struct Archetype @@ -126,7 +127,7 @@ impl Archetype { if component_id.is_pair() && component_id.target() == Uid::wildcard() { return MatchingComponentIter { - inner: Either::A( + inner: Either::Left( self.component_ids .iter() .enumerate() @@ -144,7 +145,7 @@ impl Archetype } MatchingComponentIter { - inner: Either::B( + inner: Either::Right( [component_id] .into_iter() .zip(self.get_index_for_component(component_id)), @@ -190,7 +191,7 @@ impl Archetype ) -> impl Iterator + use<'_> { if component_id.is_pair() && component_id.target() == Uid::wildcard() { - return Either::A( + return Either::Left( self.component_ids .iter() .filter(move |other_comp_id| { @@ -201,7 +202,7 @@ impl Archetype ); } - Either::B( + Either::Right( (if self.contains_component_with_exact_id(component_id) { Some(component_id) } else { -- cgit v1.2.3-18-g5258