diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2015-01-12 03:01:24 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2015-01-12 03:18:40 +0900 |
commit | 7a2bc2cada971c7a390d09b0afda34780ff56fb6 (patch) | |
tree | caa19fa8bf404a854c9e2cdf6eb08194e1733a6f /src/merger.go | |
parent | 9dbf6b02d24b52ae43e36905bbb1e83087e1dfe9 (diff) |
Lint
Diffstat (limited to 'src/merger.go')
-rw-r--r-- | src/merger.go | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/merger.go b/src/merger.go index 16afdafc..bd2158d1 100644 --- a/src/merger.go +++ b/src/merger.go @@ -2,8 +2,11 @@ package fzf import "fmt" -var EmptyMerger *Merger = NewMerger([][]*Item{}, false) +// Merger with no data +var EmptyMerger = NewMerger([][]*Item{}, 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 @@ -12,6 +15,7 @@ type Merger struct { count int } +// NewMerger returns a new Merger func NewMerger(lists [][]*Item, sorted bool) *Merger { mg := Merger{ lists: lists, @@ -26,10 +30,12 @@ func NewMerger(lists [][]*Item, sorted bool) *Merger { return &mg } +// Length returns the number of items 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 { if len(mg.lists) == 1 { return mg.lists[0][idx] @@ -69,7 +75,7 @@ func (mg *Merger) mergedGet(idx int) *Item { if minIdx >= 0 { chosen := mg.lists[minIdx] mg.merged = append(mg.merged, chosen[mg.cursors[minIdx]]) - mg.cursors[minIdx] += 1 + mg.cursors[minIdx]++ } else { panic(fmt.Sprintf("Index out of bounds (sorted, %d/%d)", i, mg.count)) } |