 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
Constants ¶
This section is empty.
Variables ¶
      View Source
      
  var CacherTests = []struct { Size int Func func(t *testing.T, c Cacher) }{ {Size: 1, Func: TestBasic}, {Size: 2, Func: TestEviction}, }
CacherTests is a list of all Cacher tests
Functions ¶
func TestEviction ¶ added in v1.1.4
Types ¶
type Cacher ¶
type Cacher interface {
	// Put inserts an element into the cache. If spaced is required, elements will
	// be evicted.
	Put(key, value interface{})
	// Get returns the entry in the cache with the key specified, if no value
	// exists, false is returned.
	Get(key interface{}) (interface{}, bool)
	// Evict removes the specified entry from the cache
	Evict(key interface{})
	// Flush removes all entries from the cache
	Flush()
}
    Cacher acts as a best effort key value store. Keys must be comparable, as defined by https://golang.org/ref/spec#Comparison_operators.
type Deduplicator ¶
type Deduplicator interface {
	// Deduplicate returns either the provided value, or a previously provided
	// value with the same ID that hasn't yet been evicted
	Deduplicate(Evictable) Evictable
	// Flush removes all entries from the cache
	Flush()
}
    Deduplicator acts as a best effort deduplication service
type Evictable ¶
type Evictable interface {
	// Key must return a comparable value as defined by
	// https://golang.org/ref/spec#Comparison_operators.
	Key() interface{}
	Evict()
}
    Evictable allows the object to be notified when it is evicted
type EvictableLRU ¶
type EvictableLRU struct {
	Size int
	// contains filtered or unexported fields
}
    EvictableLRU is an LRU cache that notifies the objects when they are evicted.
func (*EvictableLRU) Deduplicate ¶
func (c *EvictableLRU) Deduplicate(value Evictable) Evictable
func (*EvictableLRU) Flush ¶
func (c *EvictableLRU) Flush()
 Click to show internal directories. 
   Click to hide internal directories.