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.
CODE REVIEW
In order to make this package more generic (keys other than uint64) I modified the interfaces a bit so all they require is the Compare method. This means you could use skip lists to store strings, ints, uints, and random type but also kills us performance-wise. I would love generics here as the "byposition" and "byvalue" code shows that we are taking a 5x performance hit to make this code generic. I also killed the skiplist* type as it requires computable keys which only works if the key is computable (number types basically). We could re-introduce this with generics, if we ever get them.
@alexandercampbell-wf @beaulyddon-wf @tannermiller-wf @ericolson-wf @stevenosborne-wf @tylertreat-wf @rosshendrickson-wf