Documentation ¶
Index ¶
- type EvictCallback
- type EvictionReason
- type LRU
- func (l *LRU) Add(key selectors.Field, value selectors.ValueScore) bool
- func (l *LRU) Cap() int
- func (l *LRU) Capacity() bool
- func (l *LRU) Contains(key selectors.Field) bool
- func (l *LRU) Dequeue(fn func(selectors.Field, selectors.ValueScore) error) ([]selectors.FieldValueScore, error)
- func (l *LRU) Get(key selectors.Field) (value selectors.ValueScore, ok bool)
- func (l *LRU) Keys() []selectors.Field
- func (l *LRU) Len() int
- func (l *LRU) Peek(key selectors.Field) (value selectors.ValueScore, ok bool)
- func (l *LRU) Pop() (selectors.Field, selectors.ValueScore, bool)
- func (l *LRU) Purge()
- func (l *LRU) Remove(key selectors.Field) (ok bool)
- func (l *LRU) Slice() []selectors.FieldValueScore
- func (l *LRU) Walk(fn func(selectors.Field, selectors.ValueScore) error) (err error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EvictCallback ¶
type EvictCallback func(EvictionReason, selectors.Field, selectors.ValueScore)
EvictCallback lets you know when an eviction has happened in the cache
type EvictionReason ¶
type EvictionReason int
EvictionReason describes why the eviction happened
const ( // Purged by calling reset Purged EvictionReason = iota // Popped manually from the cache Popped // Removed manually from the cache Removed // Dequeued by walking over due to being dequeued Dequeued )
type LRU ¶
type LRU struct {
// contains filtered or unexported fields
}
LRU implements a non-thread safe fixed size LRU cache
func NewLRU ¶
func NewLRU(size int, onEvict EvictCallback) *LRU
NewLRU creates a LRU cache with a size and callback on eviction
func (*LRU) Dequeue ¶
func (l *LRU) Dequeue(fn func(selectors.Field, selectors.ValueScore) error) ([]selectors.FieldValueScore, error)
Dequeue iterates over the LRU cache removing an item upon each iteration.
func (*LRU) Peek ¶
Peek returns a value, without marking the LRU cache. Returns true if a value is found.
func (*LRU) Purge ¶
func (l *LRU) Purge()
Purge removes all items with in the cache, calling evict callback on each.
func (*LRU) Slice ¶
func (l *LRU) Slice() []selectors.FieldValueScore
Slice returns a snapshot of the selectors.FieldValueScore pairs.
Click to show internal directories.
Click to hide internal directories.