swift-algorithm-club
swift-algorithm-club copied to clipboard
extend OrderedSet with convenience methods ensure_at_front/end..
…l eg in implementing a list of "recent documents"
Checklist
- [x] I've looked at the contribution guidelines.
- [x] This pull request is complete and ready for review.
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)