trttlcache

package module
v0.15.0 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2023 License: MIT Imports: 5 Imported by: 0

README

trcache ttlcache GoDoc

This is a trcache wrapper for TTLCache.

Info

TTLCache library
info
Generics Yes
Key types comparable
Value types [V]
TTL Yes
wrapper
info
Default codec N/A
Default key codec N/A

Installation

go get github.com/rrgmc/trcache/cache/ttlcache

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithDefaultDuration

func WithDefaultDuration[K comparable, V any](duration time.Duration) trcache.RootOption

func WithGetTouch

func WithGetTouch[K comparable, V any](touch bool) trcache.GetOption

func WithValidator

func WithValidator[K comparable, V any](validator trcache.Validator[V]) trcache.RootOption

Types

type Cache

type Cache[K comparable, V any] struct {
	// contains filtered or unexported fields
}
Example
ctx := context.Background()

tcache := ttlcache.New[string, string]()

cache, err := New[string, string](tcache,
	WithDefaultDuration[string, string](time.Minute),
)
if err != nil {
	panic(err)
}

err = cache.Set(ctx, "a", "12")
if err != nil {
	panic(err)
}

v, err := cache.Get(ctx, "a")
if err != nil {
	panic(err)
}
fmt.Println(v)

err = cache.Delete(ctx, "a")
if err != nil {
	panic(err)
}

_, err = cache.Get(ctx, "a")
fmt.Println(err)
Output:

12
not found

func New

func New[K comparable, V any](cache *ttlcache.Cache[K, V],
	options ...trcache.RootOption) (*Cache[K, V], error)

func NewDefault

func NewDefault[K comparable, V any](options ...trcache.RootOption) (*Cache[K, V], error)

func (*Cache[K, V]) Delete

func (c *Cache[K, V]) Delete(ctx context.Context, key K,
	options ...trcache.DeleteOption) error

func (*Cache[K, V]) Get

func (c *Cache[K, V]) Get(ctx context.Context, key K,
	options ...trcache.GetOption) (V, error)

func (*Cache[K, V]) Handle

func (c *Cache[K, V]) Handle() *ttlcache.Cache[K, V]

func (*Cache[K, V]) Name

func (c *Cache[K, V]) Name() string

func (*Cache[K, V]) Set

func (c *Cache[K, V]) Set(ctx context.Context, key K, value V,
	options ...trcache.SetOption) error

type RefreshCache

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

func NewDefaultRefresh

func NewDefaultRefresh[K comparable, V any](options ...trcache.RootOption) (*RefreshCache[K, V], error)

func NewRefresh

func NewRefresh[K comparable, V any](cache *ttlcache.Cache[K, V],
	options ...trcache.RootOption) (*RefreshCache[K, V], error)

func (*RefreshCache[K, V]) GetOrRefresh

func (c *RefreshCache[K, V]) GetOrRefresh(ctx context.Context, key K, options ...trcache.RefreshOption) (V, error)

Jump to

Keyboard shortcuts

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