aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_arena
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_arena')
-rw-r--r--crates/ra_arena/src/lib.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/crates/ra_arena/src/lib.rs b/crates/ra_arena/src/lib.rs
index 1c97c2662..26641e690 100644
--- a/crates/ra_arena/src/lib.rs
+++ b/crates/ra_arena/src/lib.rs
@@ -71,12 +71,15 @@ impl<ID: ArenaId, T> Arena<ID, T> {
71 pub fn len(&self) -> usize { 71 pub fn len(&self) -> usize {
72 self.data.len() 72 self.data.len()
73 } 73 }
74 pub fn is_empty(&self) -> bool {
75 self.data.is_empty()
76 }
74 pub fn alloc(&mut self, value: T) -> ID { 77 pub fn alloc(&mut self, value: T) -> ID {
75 let id = RawId(self.data.len() as u32); 78 let id = RawId(self.data.len() as u32);
76 self.data.push(value); 79 self.data.push(value);
77 ID::from_raw(id) 80 ID::from_raw(id)
78 } 81 }
79 pub fn iter<'a>(&'a self) -> impl Iterator<Item = (ID, &'a T)> { 82 pub fn iter(&self) -> impl Iterator<Item = (ID, &T)> {
80 self.data.iter().enumerate().map(|(idx, value)| (ID::from_raw(RawId(idx as u32)), value)) 83 self.data.iter().enumerate().map(|(idx, value)| (ID::from_raw(RawId(idx as u32)), value))
81 } 84 }
82} 85}