extend OrderedSet with convenience methods ensure_at_front/end.. #981
+32
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
…l eg in implementing a list of "recent documents"
Checklist
Description
Bugfix: Fails to insert at index 0 into empty container (off by one error)
For situations such as implementing a list of "recent documents" eg for text editor, it's necessary to maintain an ordered set, but with the additional capability of prepending/appending a new instance if the object doesn't yet exist in the set, or if it does, shifting the object to the front/back. This functionality has been added.
Furthermore, the convenience method
contains
, which can be used by clients without requiring them to know the internal representation of the class, (anddebug_str
useful for printing/debugging)