func()

in qf.go [84:110]


func (qf *Filter) eachHashValue(cb func(uint64, uint64)) {
	// a stack of q values
	stack := []uint64{}
	// let's start from an unshifted value
	start := uint64(0)
	for qf.read(start).shifted() {
		right(&start, qf.size)
	}
	end := start
	left(&end, qf.size)
	for i := start; true; right(&i, qf.size) {
		sd := qf.read(i)
		if !sd.continuation() && len(stack) > 0 {
			stack = stack[1:]
		}
		if sd.occupied() {
			stack = append(stack, i)
		}
		if len(stack) > 0 {
			r := sd.r()
			cb((stack[0]<<qf.rBits)|(r&qf.rMask), i)
		}
		if i == end {
			break
		}
	}
}