lru

package
v0.0.0-...-ef931f2 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2024 License: ISC Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache[K comparable, V cache.Value] struct {
	// contains filtered or unexported fields
}

Cache provides a generic thread-safe lru cache that can be used for storing filters, blocks, etc.

func NewCache

func NewCache[K comparable, V cache.Value](capacity uint64) *Cache[K, V]

NewCache return a cache with specified capacity, the cache's size can't exceed that given capacity.

func (*Cache[K, V]) Get

func (c *Cache[K, V]) Get(key K) (V, error)

Get will return value for a given key, making the element the most recently accessed item in the process. Will return nil if the key isn't found.

func (*Cache[K, V]) Len

func (c *Cache[K, V]) Len() int

Len returns number of elements in the cache.

func (*Cache[K, V]) Put

func (c *Cache[K, V]) Put(key K, value V) (bool, error)

Put inserts a given (key,value) pair into the cache, if the key already exists, it will replace value and update it to be most recent item in cache. The return value indicates whether items had to be evicted to make room for the new element.

Jump to

Keyboard shortcuts

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