Code refactoring for bpa operator
[icn.git] / cmd / bpa-operator / vendor / github.com / hashicorp / golang-lru / simplelru / lru_interface.go
1 package simplelru
2
3 // LRUCache is the interface for simple LRU cache.
4 type LRUCache interface {
5         // Adds a value to the cache, returns true if an eviction occurred and
6         // updates the "recently used"-ness of the key.
7         Add(key, value interface{}) bool
8
9         // Returns key's value from the cache and
10         // updates the "recently used"-ness of the key. #value, isFound
11         Get(key interface{}) (value interface{}, ok bool)
12
13         // Check if a key exsists in cache without updating the recent-ness.
14         Contains(key interface{}) (ok bool)
15
16         // Returns key's value without updating the "recently used"-ness of the key.
17         Peek(key interface{}) (value interface{}, ok bool)
18
19         // Removes a key from the cache.
20         Remove(key interface{}) bool
21
22         // Removes the oldest entry from cache.
23         RemoveOldest() (interface{}, interface{}, bool)
24
25         // Returns the oldest entry from the cache. #key, value, isFound
26         GetOldest() (interface{}, interface{}, bool)
27
28         // Returns a slice of the keys in the cache, from oldest to newest.
29         Keys() []interface{}
30
31         // Returns the number of items in the cache.
32         Len() int
33
34         // Clear all cache entries
35         Purge()
36 }