aboutsummaryrefslogtreecommitdiff
path: root/internal/commitquery/priority_queue.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-11 20:41:32 +0800
committerGravatar Runxi Yu2026-03-11 20:41:32 +0800
commit040b572d95e4ca27e1ada6113c405b8a1eb4a669 (patch)
tree68d826f4d91144105802c9d1c67175ba9b314e29 /internal/commitquery/priority_queue.go
parentresearch: Maybe drop mmap in packfile_bloom (diff)
signatureNo signature
commitquery: Merge from ancestor and mergebases
Diffstat (limited to 'internal/commitquery/priority_queue.go')
-rw-r--r--internal/commitquery/priority_queue.go68
1 files changed, 0 insertions, 68 deletions
diff --git a/internal/commitquery/priority_queue.go b/internal/commitquery/priority_queue.go
deleted file mode 100644
index d6dbf54f..00000000
--- a/internal/commitquery/priority_queue.go
+++ /dev/null
@@ -1,68 +0,0 @@
-package commitquery
-
-import "container/heap"
-
-// priorityQueue orders internal nodes using one query context's comparator.
-type priorityQueue struct {
- ctx *Context
- items []NodeIndex
-}
-
-// newPriorityQueue builds one empty priority queue over one query context.
-func newPriorityQueue(ctx *Context) *priorityQueue {
- queue := &priorityQueue{ctx: ctx}
- heap.Init(queue)
-
- return queue
-}
-
-// Len reports the number of queued items.
-func (queue *priorityQueue) Len() int {
- return len(queue.items)
-}
-
-// Less reports whether one heap slot sorts ahead of another.
-func (queue *priorityQueue) Less(left, right int) bool {
- return queue.ctx.Compare(queue.items[left], queue.items[right]) > 0
-}
-
-// Swap exchanges two heap slots.
-func (queue *priorityQueue) Swap(left, right int) {
- queue.items[left], queue.items[right] = queue.items[right], queue.items[left]
-}
-
-// Push appends one heap element.
-func (queue *priorityQueue) Push(item any) {
- idx, ok := item.(NodeIndex)
- if !ok {
- panic("commitquery: heap push item is not a NodeIndex")
- }
-
- queue.items = append(queue.items, idx)
-}
-
-// Pop removes one heap element.
-func (queue *priorityQueue) Pop() any {
- last := len(queue.items) - 1
- item := queue.items[last]
- queue.items = queue.items[:last]
-
- return item
-}
-
-// PushNode inserts one internal node.
-func (queue *priorityQueue) PushNode(idx NodeIndex) {
- heap.Push(queue, idx)
-}
-
-// PopNode removes the highest-priority internal node.
-func (queue *priorityQueue) PopNode() NodeIndex {
- item := heap.Pop(queue)
-
- idx, ok := item.(NodeIndex)
- if !ok {
- panic("commitquery: heap pop item is not a NodeIndex")
- }
-
- return idx
-}