diff --git a/src/protocol/arena.rs b/src/protocol/arena.rs index 68dc8b5cd6f8ad83dbeef578b351f0d2055e557a..d85e21152016c3fc054927aa31a18220acaae87c 100644 --- a/src/protocol/arena.rs +++ b/src/protocol/arena.rs @@ -57,6 +57,15 @@ impl Arena { id } + // Compiler-internal direct retrieval + pub(crate) fn get(&self, idx: usize) -> &T { + return &self.store[idx] + } + pub(crate) fn get_id(&self, idx: usize) -> Id { + debug_assert!(idx < self.store.len()); + return Id::new(idx as i32); + } + pub fn iter(&self) -> impl Iterator { self.store.iter() }