实现
This commit is contained in:
51
callback.go
Normal file
51
callback.go
Normal file
@@ -0,0 +1,51 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user