in qf.go [472:500]
func lookupByHash(dq, dr, size uint64, read, storage readFn) (bool, uint64) {
sd := slotData(read(dq))
if !sd.occupied() {
return false, 0
}
slot := dq
if sd.shifted() {
slot = findStart(dq, size, read)
sd = slotData(read(slot))
}
for {
if sd.r() == dr {
value := uint64(0)
if storage != nil {
value = storage(slot)
}
return true, value
}
if sd.r() > dr {
break
}
right(&slot, size)
sd = slotData(read(slot))
if !sd.continuation() {
break
}
}
return false, 0
}