github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/pkg/graveler/committed/merge_value_iterator.go (about) 1 package committed 2 3 import ( 4 "context" 5 6 "github.com/treeverse/lakefs/pkg/graveler" 7 ) 8 9 type compareValueIterator struct { 10 *compareIterator 11 } 12 13 // NewCompareValueIterator Wraps CompareIterator in order to return only values 14 func NewCompareValueIterator(ctx context.Context, diffDestToSource DiffIterator, base Iterator) *compareValueIterator { 15 return &compareValueIterator{ 16 compareIterator: NewCompareIterator(ctx, diffDestToSource, base), 17 } 18 } 19 20 func (d *compareValueIterator) Next() bool { 21 for d.compareIterator.Next() { 22 val, _ := d.compareIterator.Value() 23 if val != nil { 24 return true 25 } 26 } 27 return false 28 } 29 30 func (d *compareValueIterator) Value() *graveler.Diff { 31 val, _ := d.compareIterator.Value() 32 return val 33 } 34 35 func (d *compareValueIterator) Close() { 36 d.compareIterator.Close() 37 }