-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Description
There seem to be two ways to add an element to a StableVec:
-
StableVec::push, which inserts an element in the next free slot? It is not entirely clear by the documentation what this is supposed to be? -
StableVec::insert, which inserts an element at the specified position, but does panic if the index is out of bounds (which makes it quite inconvenient, because you would have to always callStableVec::reserve_for(index)and then callStableVec::insert, to prevent panics).
I am a bit confused about the behavior of those two methods.
- I expect a function called
pushto push an element to the back of the vec (likeVec::push) - and I do not expect
insertto panic if the index is out of bounds (I see this method more like aHashMap::<usize, T>::insert)
I would suggest adding the following methods:
StableVec::push_back(&mut self, value: T), appends an element to the back of theStableVec, ignoring free slotsStableVec::pop_back(&mut self) -> Option<T>, removes the last element from aStableVec
And changing the StableVec::insert method to not panic if the capacity is exhausted and instead resize the vector.
Metadata
Metadata
Assignees
Labels
No labels