cache

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Jun 18, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Copyright 2025 The Aibrix Team.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

This section is empty.

Variables

View Source
var DefaultGetCurrentTime = func() time.Time {
	return time.Now()
}

Functions

This section is empty.

Types

type LRUStore

type LRUStore[K comparable, V any] struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

TODO: make LRUStore thread-safe

func NewLRUStore

func NewLRUStore[K comparable, V any](cap int, ttl, interval time.Duration, f getCurrentTime) *LRUStore[K, V]

func (*LRUStore[K, V]) Close added in v0.7.0

func (e *LRUStore[K, V]) Close()

Close stops the background eviction goroutine.

func (*LRUStore[K, V]) Get

func (e *LRUStore[K, V]) Get(key K) (V, bool)

func (*LRUStore[K, V]) Len

func (e *LRUStore[K, V]) Len() int

func (*LRUStore[K, V]) Put

func (e *LRUStore[K, V]) Put(key K, value V) bool

func (*LRUStore[K, V]) Range added in v0.7.0

func (e *LRUStore[K, V]) Range(f func(key K, value V) bool)

Range calls f for each key-value pair in the store; iteration stops if f returns false.

type Store

type Store[K comparable, V any] interface {
	Put(key K, value V) bool
	Get(key K) (V, bool)
	Len() int
	// Range calls f for each key-value pair; iteration stops if f returns false.
	Range(f func(key K, value V) bool)
}

Store is implemented by LRUStore; keep Range in sync if you add another implementation.

Jump to

Keyboard shortcuts

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