lru

package
v0.0.0-...-4aff305 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 2, 2018 License: GPL-3.0 Imports: 1 Imported by: 2

Documentation

Index

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) Add

func (l *LRU) Add(key selectors.Field, value selectors.ValueScore) bool

Add adds a key, value pair. Returns true if an eviction happened.

func (*LRU) Cap

func (l *LRU) Cap() int

Cap returns the current cap limit to the LRU cache

func (*LRU) Capacity

func (l *LRU) Capacity() bool

Capacity returns if the LRU cache is at capacity or not.

func (*LRU) Contains

func (l *LRU) Contains(key selectors.Field) bool

Contains finds out if a key is present in the LRU cache

func (*LRU) Dequeue

Dequeue iterates over the LRU cache removing an item upon each iteration.

func (*LRU) Get

func (l *LRU) Get(key selectors.Field) (value selectors.ValueScore, ok bool)

Get returns back a value if it exists. Returns true if found.

func (*LRU) Keys

func (l *LRU) Keys() []selectors.Field

Keys returns the keys as a slice

func (*LRU) Len

func (l *LRU) Len() int

Len returns the current length of the LRU cache

func (*LRU) Peek

func (l *LRU) Peek(key selectors.Field) (value selectors.ValueScore, ok bool)

Peek returns a value, without marking the LRU cache. Returns true if a value is found.

func (*LRU) Pop

func (l *LRU) Pop() (selectors.Field, selectors.ValueScore, bool)

Pop removes the last LRU item with in the cache

func (*LRU) Purge

func (l *LRU) Purge()

Purge removes all items with in the cache, calling evict callback on each.

func (*LRU) Remove

func (l *LRU) Remove(key selectors.Field) (ok bool)

Remove a value using it's key Returns true if a removal happened

func (*LRU) Slice

func (l *LRU) Slice() []selectors.FieldValueScore

Slice returns a snapshot of the selectors.FieldValueScore pairs.

func (*LRU) Walk

func (l *LRU) Walk(fn func(selectors.Field, selectors.ValueScore) error) (err error)

Walk iterates over the LRU cache removing an item upon each iteration.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL