52 lines
1.0 KiB
Go
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
|
|
}
|