aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_vfs/src/arena.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_vfs/src/arena.rs')
-rw-r--r--crates/ra_vfs/src/arena.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/crates/ra_vfs/src/arena.rs b/crates/ra_vfs/src/arena.rs
index d6fad753b..6b42ae26d 100644
--- a/crates/ra_vfs/src/arena.rs
+++ b/crates/ra_vfs/src/arena.rs
@@ -1,5 +1,4 @@
1use std::{ 1use std::{
2 hash::{Hash, Hasher},
3 marker::PhantomData, 2 marker::PhantomData,
4 ops::{Index, IndexMut}, 3 ops::{Index, IndexMut},
5}; 4};
@@ -21,6 +20,12 @@ impl<ID: ArenaId, T> Arena<ID, T> {
21 self.data.push(value); 20 self.data.push(value);
22 ID::from_u32(id) 21 ID::from_u32(id)
23 } 22 }
23 pub fn iter<'a>(&'a self) -> impl Iterator<Item = (ID, &'a T)> {
24 self.data
25 .iter()
26 .enumerate()
27 .map(|(idx, value)| (ID::from_u32(idx as u32), value))
28 }
24} 29}
25 30
26impl<ID: ArenaId, T> Default for Arena<ID, T> { 31impl<ID: ArenaId, T> Default for Arena<ID, T> {