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  }