Turns out, collect is the answer
This commit is contained in:
parent
8f3c83311f
commit
10fb09eca2
1 changed files with 8 additions and 15 deletions
|
@ -42,21 +42,14 @@ impl<A> EntityMap<A> {
|
|||
|
||||
/// Returns a list of all entities at the given position
|
||||
pub fn at<'a>(&'a self, pos: Position) -> Vec<&'a A> {
|
||||
// self.by_position.get(&pos).iter().flat_map(|eids| {
|
||||
// eids.iter()
|
||||
// .map(|eid| self.by_id.get(eid).expect(BY_POS_INVARIANT))
|
||||
// })
|
||||
// gross.
|
||||
match self.by_position.get(&pos) {
|
||||
None => Vec::new(),
|
||||
Some(eids) => {
|
||||
let mut res = Vec::new();
|
||||
for eid in eids {
|
||||
res.push(self.by_id.get(eid).expect(BY_POS_INVARIANT));
|
||||
}
|
||||
res
|
||||
}
|
||||
}
|
||||
self.by_position
|
||||
.get(&pos)
|
||||
.iter()
|
||||
.flat_map(|eids| {
|
||||
eids.iter()
|
||||
.map(|eid| self.by_id.get(eid).expect(BY_POS_INVARIANT))
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
/// Remove all entities at the given position
|
||||
|
|
Loading…
Reference in a new issue