container/heap: use sort.Interface where possible #65967
+4
−4
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.
Functions heap.Pop(), heap.Push() and heap.Remove() use type
heap.Interface. This type is equal to sort.Interface, with Push() and
Pop() methods added. This is necessary, because these functions affect
the size of the resulting heap.
Functions heap.Fix() and heap.Init() are different. They may compare and
swap elements in the underlying container, but never alter its size. It
is therefore possible to just use sort.Interface. This would make these
functions a lot more pleasant to use in situations where you know the
number of elements in the heap is fixed.
Consider the case where you use these functions to merge the results of
n infinitely long monotonically increasing sequences. For example, logs
received from multiple sources that need to be turned into a single
stream of events sorted by time. This can now be implemented as follows: