in lru.go [303:325]
func (lru *LRU[K, V]) findKey(hash uint32, key K) (uint32, bool) {
_, startPos := lru.hashToPos(hash)
if startPos == emptyBucket {
return emptyBucket, false
}
pos := startPos
for {
if key == lru.elements[pos].key {
if lru.elements[pos].expire != 0 && lru.elements[pos].expire <= now() {
lru.removeAt(pos)
return emptyBucket, false
}
return pos, true
}
pos = lru.elements[pos].nextBucket
if pos == startPos {
// Key not found
return emptyBucket, false
}
}
}