func New(capacity int) *LRU {
	if capacity < 2 {
		panic("capacity must be at least 2")
	}
	return &LRU{
		capacity: capacity,
		cache:    make(map[uint64]*entry, capacity),
	}
}
NewLRU creates a new LRU cache with the given capacity
package lru
import (
	"sync"
)
type entry struct {
	key   uint64
	value uint32
	next  *entry
}
type LRU struct {
	capacity int                
	head     *entry             
	cache    map[uint64]*entry  
	lock     sync.Mutex         
}