Files
cache/callback.go
2024-08-17 12:04:33 +08:00

52 lines
1.0 KiB
Go

package cache
type SetCallback[K comparable, V any] struct {
cache *Cache[K, V]
}
func (c *Cache[K, V]) SetCallBack() SetCallback[K, V] {
return SetCallback[K, V]{cache: c}
}
func (c SetCallback[K, V]) SetSet(f func(K, Data[V])) {
c.cache.mu.Lock()
defer c.cache.mu.Unlock()
c.cache.cSet = f
}
func (c SetCallback[K, V]) SetGet(f func(K, Data[V])) {
c.cache.mu.Lock()
defer c.cache.mu.Unlock()
c.cache.cGet = f
}
func (c SetCallback[K, V]) SetGetData(f func(K, Data[V])) {
c.cache.mu.Lock()
defer c.cache.mu.Unlock()
c.cache.cGetData = f
}
func (c SetCallback[K, V]) SetGetTTL(f func(K, Data[V])) {
c.cache.mu.Lock()
defer c.cache.mu.Unlock()
c.cache.cGetTTL = f
}
func (c SetCallback[K, V]) SetDel(f func(K, Data[V])) {
c.cache.mu.Lock()
defer c.cache.mu.Unlock()
c.cache.cDel = f
}
func (c SetCallback[K, V]) SetUpData(f func(K, Data[V])) {
c.cache.mu.Lock()
defer c.cache.mu.Unlock()
c.cache.cUpData = f
}
func (c SetCallback[K, V]) SetUpTTL(f func(K, Data[V])) {
c.cache.mu.Lock()
defer c.cache.mu.Unlock()
c.cache.cUpTTL = f
}