From 525c69bbe81edb352c9e87c4581c537dcb0ad91c Mon Sep 17 00:00:00 2001 From: Jakob Stoklund Olesen Date: Tue, 13 Sep 2016 16:14:46 -0700 Subject: [PATCH] Add a next_key() method to primary entity maps. It is sometimes useful to know the entity reference number that will be assigned to the next thing added to a map. --- src/libcretonne/entity_map.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libcretonne/entity_map.rs b/src/libcretonne/entity_map.rs index 91ff7505a3..df486c48ed 100644 --- a/src/libcretonne/entity_map.rs +++ b/src/libcretonne/entity_map.rs @@ -94,9 +94,14 @@ impl EntityMap where K: EntityRef, V: PrimaryEntityData { + /// Get the key that will be assigned to the next pushed value. + pub fn next_key(&self) -> K { + K::new(self.elems.len()) + } + /// Append `v` to the mapping, assigning a new key which is returned. pub fn push(&mut self, v: V) -> K { - let k = K::new(self.elems.len()); + let k = self.next_key(); self.elems.push(v); k }