lru
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package lru contains a typed Least-Recently-Used cache.
Index¶
- type Cache
- func (c *Cache[K, V]) Clear()
- func (c *Cache[K, V]) Contains(key K) bool
- func (c *Cache[K, V]) Delete(key K)
- func (c *Cache[K, V]) DeleteOldest()
- func (c *Cache[K, V]) DumpHTML(w io.Writer)
- func (c *Cache[K, V]) ForEach(fn func(K, V))
- func (c *Cache[K, V]) Get(key K) V
- func (c *Cache[K, V]) GetOk(key K) (value V, ok bool)
- func (c *Cache[K, V]) Len() int
- func (c *Cache[K, V]) PeekOk(key K) (value V, ok bool)
- func (c *Cache[K, V]) Set(key K, value V)
Constants¶
This section is empty.
Variables¶
This section is empty.
Functions¶
This section is empty.
Types¶
typeCache¶
type Cache[Kcomparable, Vany] struct {// MaxEntries is the maximum number of cache entries before// an item is evicted. Zero means no limit.MaxEntriesint// contains filtered or unexported fields}
Cache is container type keyed by K, storing V, optionally evicting the leastrecently used items if a maximum size is exceeded.
The zero value is valid to use.
It is not safe for concurrent access.
The current implementation is just the traditional LRU linked list; a futureimplementation may be more advanced to avoid pathological cases.
func (*Cache[K, V])Clear¶added inv1.68.0
func (c *Cache[K, V]) Clear()
Clear removes all items from the cache.
func (*Cache[K, V])Contains¶
Contains reports whether c contains key.
If found, key is moved to the front of the LRU.
func (*Cache[K, V])Delete¶
func (c *Cache[K, V]) Delete(key K)
Delete removes the provided key from the cache if it was present.
func (*Cache[K, V])DeleteOldest¶
func (c *Cache[K, V]) DeleteOldest()
DeleteOldest removes the item from the cache that was leastrecently accessed. It is a no-op if the cache is empty.
func (*Cache[K, V])DumpHTML¶added inv1.50.0
DumpHTML writes the state of the cache to the given writer,formatted as an HTML table.
func (*Cache[K, V])ForEach¶added inv1.50.0
func (c *Cache[K, V]) ForEach(fn func(K, V))
ForEach calls fn for each entry in the cache, from most recentlyused to least recently used.
func (*Cache[K, V])Get¶
func (c *Cache[K, V]) Get(key K) V
Get looks up a key's value from the cache, returning eitherthe value or the zero value if it not present.
If found, key is moved to the front of the LRU.
func (*Cache[K, V])GetOk¶
GetOk looks up a key's value from the cache, also reporting whetherit was present.
If found, key is moved to the front of the LRU.