github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/core/util/packed/reader.go (about)

     1  package packed
     2  
     3  import (
     4  	"github.com/balzaczyy/golucene/core/util"
     5  )
     6  
     7  /* A reader which has all its values equal to 0 (bitsPerValue = 0). */
     8  type NilReader struct {
     9  	valueCount int
    10  }
    11  
    12  func newNilReader(valueCount int) *NilReader {
    13  	return &NilReader{
    14  		valueCount: valueCount,
    15  	}
    16  }
    17  
    18  func (r *NilReader) Get(int) int64 { return 0 }
    19  
    20  func (r *NilReader) getBulk(index int, arr []int64) int {
    21  	length := len(arr)
    22  	assert2(length > 0, "len must be > 0 (got %v)", length)
    23  	assert(index >= 0 && index < r.valueCount)
    24  	if r.valueCount-index < length {
    25  		length = r.valueCount - index
    26  	}
    27  	for i, _ := range arr {
    28  		arr[i] = 0
    29  	}
    30  	return length
    31  }
    32  
    33  func (r *NilReader) Size() int {
    34  	return r.valueCount
    35  }
    36  
    37  func (r *NilReader) RamBytesUsed() int64 {
    38  	return util.AlignObjectSize(util.NUM_BYTES_OBJECT_HEADER + util.NUM_BYTES_INT)
    39  }