diff options
Diffstat (limited to 'ecs/src/component')
| -rw-r--r-- | ecs/src/component/storage.rs | 62 | 
1 files changed, 31 insertions, 31 deletions
| diff --git a/ecs/src/component/storage.rs b/ecs/src/component/storage.rs index 42e0e4f..cff50cf 100644 --- a/ecs/src/component/storage.rs +++ b/ecs/src/component/storage.rs @@ -16,37 +16,6 @@ pub struct Storage      pending_archetype_lookup_entries: Vec<Vec<ComponentId>>,  } -#[derive(Debug)] -pub struct ArchetypeRefIter<'component_storage> -{ -    inner: SliceIter<'component_storage, usize>, -    archetypes: &'component_storage [Archetype], -} - -impl<'component_storage> ArchetypeRefIter<'component_storage> -{ -    fn new_empty() -> Self -    { -        Self { inner: [].iter(), archetypes: &[] } -    } -} - -impl<'component_storage> Iterator for ArchetypeRefIter<'component_storage> -{ -    type Item = &'component_storage Archetype; - -    fn next(&mut self) -> Option<Self::Item> -    { -        let archetype_index = *self.inner.next()?; - -        Some( -            self.archetypes -                .get(archetype_index) -                .expect("Archetype index in archetype lookup entry was not found"), -        ) -    } -} -  impl Storage  {      pub fn find_entities( @@ -185,6 +154,37 @@ pub struct Archetype      pub components: Vec<Vec<EntityComponent>>,  } +#[derive(Debug)] +pub struct ArchetypeRefIter<'component_storage> +{ +    inner: SliceIter<'component_storage, usize>, +    archetypes: &'component_storage [Archetype], +} + +impl<'component_storage> ArchetypeRefIter<'component_storage> +{ +    fn new_empty() -> Self +    { +        Self { inner: [].iter(), archetypes: &[] } +    } +} + +impl<'component_storage> Iterator for ArchetypeRefIter<'component_storage> +{ +    type Item = &'component_storage Archetype; + +    fn next(&mut self) -> Option<Self::Item> +    { +        let archetype_index = *self.inner.next()?; + +        Some( +            self.archetypes +                .get(archetype_index) +                .expect("Archetype index in archetype lookup entry was not found"), +        ) +    } +} +  #[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]  struct ArchetypeComponentsHash  { | 
