Choose more descriptive field names for ReserveEntitiesIterator (#15168)

No hard feelings if you don't want to make this change. This is just
something I stumbled over in my very first read of the `bevy_ecs` crate.

# Objective

- the general goal here is to improve DX slightly
- make the code easier to read in general. The previous names make the
code harder to read, especially since they are so similar.

## Solution

- choose more specific names for the fields
- `index_iter` -> `freelist_indices` : "freelist" is a well established
term in the rest of the docs in this module, so we might want to reuse
it
- `index_range` -> `new_indices` : Nothing besides the doc comment
stated that these indices were actually new/fresh

## Testing

Note that the fields are private so that this is no breaking change.
They are also only used in this one module.
This commit is contained in:
Robert Walter 2024-09-20 19:13:35 +00:00 committed by GitHub
parent 4742f74fc4
commit 5484d2d6f8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -450,26 +450,26 @@ pub struct ReserveEntitiesIterator<'a> {
meta: &'a [EntityMeta],
// Reserved indices formerly in the freelist to hand out.
index_iter: std::slice::Iter<'a, u32>,
freelist_indices: std::slice::Iter<'a, u32>,
// New Entity indices to hand out, outside the range of meta.len().
index_range: std::ops::Range<u32>,
new_indices: std::ops::Range<u32>,
}
impl<'a> Iterator for ReserveEntitiesIterator<'a> {
type Item = Entity;
fn next(&mut self) -> Option<Self::Item> {
self.index_iter
self.freelist_indices
.next()
.map(|&index| {
Entity::from_raw_and_generation(index, self.meta[index as usize].generation)
})
.or_else(|| self.index_range.next().map(Entity::from_raw))
.or_else(|| self.new_indices.next().map(Entity::from_raw))
}
fn size_hint(&self) -> (usize, Option<usize>) {
let len = self.index_iter.len() + self.index_range.len();
let len = self.freelist_indices.len() + self.new_indices.len();
(len, Some(len))
}
}
@ -589,8 +589,8 @@ impl Entities {
ReserveEntitiesIterator {
meta: &self.meta[..],
index_iter: self.pending[freelist_range].iter(),
index_range: new_id_start..new_id_end,
freelist_indices: self.pending[freelist_range].iter(),
new_indices: new_id_start..new_id_end,
}
}