OSDN Git Service

add package
[bytom/vapor.git] / vendor / github.com / hashicorp / golang-lru / simplelru / lru_interface.go
diff --git a/vendor/github.com/hashicorp/golang-lru/simplelru/lru_interface.go b/vendor/github.com/hashicorp/golang-lru/simplelru/lru_interface.go
new file mode 100644 (file)
index 0000000..74c7077
--- /dev/null
@@ -0,0 +1,36 @@
+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()
+}