internal

package
v0.0.0-...-a3816f5 Latest Latest
Warning

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

Go to latest
Published: Mar 6, 2025 License: Apache-2.0, MPL-2.0 Imports: 0 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Entry

type Entry[K comparable, V any] struct {

	// The LRU Key of this element.
	Key K

	// The Value stored with this element.
	Value V
	// contains filtered or unexported fields
}

Entry is an LRU Entry

func (*Entry[K, V]) PrevEntry

func (e *Entry[K, V]) PrevEntry() *Entry[K, V]

PrevEntry returns the previous list element or nil.

type LruList

type LruList[K comparable, V any] struct {
	// contains filtered or unexported fields
}

LruList represents a doubly linked list. The zero Value for LruList is an empty list ready to use.

func NewList

func NewList[K comparable, V any]() *LruList[K, V]

NewList returns an initialized list.

func (*LruList[K, V]) Back

func (l *LruList[K, V]) Back() *Entry[K, V]

Back returns the last element of list l or nil if the list is empty.

func (*LruList[K, V]) Init

func (l *LruList[K, V]) Init() *LruList[K, V]

Init initializes or clears list l.

func (*LruList[K, V]) Length

func (l *LruList[K, V]) Length() int

Length returns the number of elements of list l. The complexity is O(1).

func (*LruList[K, V]) MoveToFront

func (l *LruList[K, V]) MoveToFront(e *Entry[K, V])

MoveToFront moves element e to the front of list l. If e is not an element of l, the list is not modified. The element must not be nil.

func (*LruList[K, V]) PushFront

func (l *LruList[K, V]) PushFront(k K, v V) *Entry[K, V]

PushFront inserts a new element e with value v at the front of list l and returns e.

func (*LruList[K, V]) Remove

func (l *LruList[K, V]) Remove(e *Entry[K, V]) V

Remove removes e from its list, decrements l.len

Jump to

Keyboard shortcuts

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