in lru.go [224:239]
func (lru *LRU[K, V]) evict(pos uint32) {
if pos == lru.head {
lru.head = lru.elements[pos].prev
}
lru.unlinkElement(pos)
lru.unlinkBucket(pos)
lru.len--
if lru.onEvict != nil {
// Save k/v for the eviction function.
key := lru.elements[pos].key
value := lru.elements[pos].value
lru.onEvict(key, value)
}
}