Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrCacheRecursiveCall = fmt.Errorf("recursive call detected")
Functions ¶
This section is empty.
Types ¶
type Cache ¶ added in v0.16.3
type Cache[K comparable, V any] interface { // Using the given key, either return an already cached value for that key or initialize // an entry in the cache with the given value for that key. GetOrInitializeValue(context.Context, K, V) (Result[K, V], error) // Using the given key, either return an already cached value for that key or initialize a // new value using the given function. If the function returns an error, the error is returned. GetOrInitialize( context.Context, K, func(context.Context) (V, error), ) (Result[K, V], error) // Using the given key, either return an already cached value for that key or initialize a // new value using the given function. If the function returns an error, the error is returned. // The function returns a ValueWithCallbacks struct that contains the value and optionally // any additional callbacks for various parts of the cache lifecycle. GetOrInitializeWithCallbacks( context.Context, K, bool, func(context.Context) (*ValueWithCallbacks[V], error), ) (Result[K, V], error) // Returns the number of entries in the cache. Size() int }
func NewCache ¶ added in v0.16.3
func NewCache[K comparable, V any]() Cache[K, V]
type OnReleaseFunc ¶ added in v0.16.3
type PostCallFunc ¶ added in v0.16.3
type ValueWithCallbacks ¶ added in v0.16.3
type ValueWithCallbacks[V any] struct { // The actual value to cache Value V // If set, a function that should be called whenever the value is returned from the cache (whether newly initialized or not) PostCall PostCallFunc // If set, this function will be called when a result is removed from the cache OnRelease OnReleaseFunc }
Click to show internal directories.
Click to hide internal directories.