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 }