diff options
Diffstat (limited to 'src/merger.go')
| -rw-r--r-- | src/merger.go | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/merger.go b/src/merger.go index 0d3fb801..3879ab7e 100644 --- a/src/merger.go +++ b/src/merger.go @@ -3,13 +3,13 @@ package fzf import "fmt" // EmptyMerger is a Merger with no data -var EmptyMerger = NewMerger([][]*Item{}, false, false) +var EmptyMerger = NewMerger([][]*Result{}, false, false) // Merger holds a set of locally sorted lists of items and provides the view of // a single, globally-sorted list type Merger struct { - lists [][]*Item - merged []*Item + lists [][]*Result + merged []*Result chunks *[]*Chunk cursors []int sorted bool @@ -33,10 +33,10 @@ func PassMerger(chunks *[]*Chunk, tac bool) *Merger { } // NewMerger returns a new Merger -func NewMerger(lists [][]*Item, sorted bool, tac bool) *Merger { +func NewMerger(lists [][]*Result, sorted bool, tac bool) *Merger { mg := Merger{ lists: lists, - merged: []*Item{}, + merged: []*Result{}, chunks: nil, cursors: make([]int, len(lists)), sorted: sorted, @@ -55,14 +55,14 @@ func (mg *Merger) Length() int { return mg.count } -// Get returns the pointer to the Item object indexed by the given integer -func (mg *Merger) Get(idx int) *Item { +// Get returns the pointer to the Result object indexed by the given integer +func (mg *Merger) Get(idx int) *Result { if mg.chunks != nil { if mg.tac { idx = mg.count - idx - 1 } chunk := (*mg.chunks)[idx/chunkSize] - return (*chunk)[idx%chunkSize] + return &Result{item: (*chunk)[idx%chunkSize]} } if mg.sorted { @@ -86,9 +86,9 @@ func (mg *Merger) cacheable() bool { return mg.count < mergerCacheMax } -func (mg *Merger) mergedGet(idx int) *Item { +func (mg *Merger) mergedGet(idx int) *Result { for i := len(mg.merged); i <= idx; i++ { - minRank := buildEmptyRank(0) + minRank := minRank() minIdx := -1 for listIdx, list := range mg.lists { cursor := mg.cursors[listIdx] @@ -97,7 +97,7 @@ func (mg *Merger) mergedGet(idx int) *Item { continue } if cursor >= 0 { - rank := list[cursor].Rank(false) + rank := list[cursor].rank if minIdx < 0 || compareRanks(rank, minRank, mg.tac) { minRank = rank minIdx = listIdx |
