| package simplelru |
| |
| // LRUCache is the interface for simple LRU cache. |
| type LRUCache interface { |
| // Adds a value to the cache, returns true if an eviction occurred and |
| // updates the "recently used"-ness of the key. |
| Add(key, value interface{}) bool |
| |
| // Returns key's value from the cache and |
| // updates the "recently used"-ness of the key. #value, isFound |
| Get(key interface{}) (value interface{}, ok bool) |
| |
| // Check if a key exsists in cache without updating the recent-ness. |
| Contains(key interface{}) (ok bool) |
| |
| // Returns key's value without updating the "recently used"-ness of the key. |
| Peek(key interface{}) (value interface{}, ok bool) |
| |
| // Removes a key from the cache. |
| Remove(key interface{}) bool |
| |
| // Removes the oldest entry from cache. |
| RemoveOldest() (interface{}, interface{}, bool) |
| |
| // Returns the oldest entry from the cache. #key, value, isFound |
| GetOldest() (interface{}, interface{}, bool) |
| |
| // Returns a slice of the keys in the cache, from oldest to newest. |
| Keys() []interface{} |
| |
| // Returns the number of items in the cache. |
| Len() int |
| |
| // Clear all cache entries |
| Purge() |
| } |