forked from mirrors/gotosocial
[chore]: Bump codeberg.org/gruf/go-cache/v3 from 3.2.3 to 3.2.5 (#1701)
Bumps codeberg.org/gruf/go-cache/v3 from 3.2.3 to 3.2.5. --- updated-dependencies: - dependency-name: codeberg.org/gruf/go-cache/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
parent
c5f61c456b
commit
a3d2774db5
6 changed files with 44 additions and 22 deletions
2
go.mod
2
go.mod
|
@ -5,7 +5,7 @@ go 1.20
|
||||||
require (
|
require (
|
||||||
codeberg.org/gruf/go-bytesize v1.0.2
|
codeberg.org/gruf/go-bytesize v1.0.2
|
||||||
codeberg.org/gruf/go-byteutil v1.1.2
|
codeberg.org/gruf/go-byteutil v1.1.2
|
||||||
codeberg.org/gruf/go-cache/v3 v3.2.3
|
codeberg.org/gruf/go-cache/v3 v3.2.5
|
||||||
codeberg.org/gruf/go-debug v1.3.0
|
codeberg.org/gruf/go-debug v1.3.0
|
||||||
codeberg.org/gruf/go-errors/v2 v2.1.1
|
codeberg.org/gruf/go-errors/v2 v2.1.1
|
||||||
codeberg.org/gruf/go-fastcopy v1.1.2
|
codeberg.org/gruf/go-fastcopy v1.1.2
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -49,8 +49,8 @@ codeberg.org/gruf/go-bytesize v1.0.2/go.mod h1:n/GU8HzL9f3UNp/mUKyr1qVmTlj7+xacp
|
||||||
codeberg.org/gruf/go-byteutil v1.0.0/go.mod h1:cWM3tgMCroSzqoBXUXMhvxTxYJp+TbCr6ioISRY5vSU=
|
codeberg.org/gruf/go-byteutil v1.0.0/go.mod h1:cWM3tgMCroSzqoBXUXMhvxTxYJp+TbCr6ioISRY5vSU=
|
||||||
codeberg.org/gruf/go-byteutil v1.1.2 h1:TQLZtTxTNca9xEfDIndmo7nBYxeS94nrv/9DS3Nk5Tw=
|
codeberg.org/gruf/go-byteutil v1.1.2 h1:TQLZtTxTNca9xEfDIndmo7nBYxeS94nrv/9DS3Nk5Tw=
|
||||||
codeberg.org/gruf/go-byteutil v1.1.2/go.mod h1:cWM3tgMCroSzqoBXUXMhvxTxYJp+TbCr6ioISRY5vSU=
|
codeberg.org/gruf/go-byteutil v1.1.2/go.mod h1:cWM3tgMCroSzqoBXUXMhvxTxYJp+TbCr6ioISRY5vSU=
|
||||||
codeberg.org/gruf/go-cache/v3 v3.2.3 h1:HL7UZN9zks2lsYdGTAZONJqVd2jZtj4NgG/1qi8EcJk=
|
codeberg.org/gruf/go-cache/v3 v3.2.5 h1:C+JwTR4uxjuE6qwqB48d3NCRJejsbzxRpfFEBReaViA=
|
||||||
codeberg.org/gruf/go-cache/v3 v3.2.3/go.mod h1:up7za8FtNdtttcx6AJ8ffqkrSkXDGTilsd9yJ0IyhfM=
|
codeberg.org/gruf/go-cache/v3 v3.2.5/go.mod h1:up7za8FtNdtttcx6AJ8ffqkrSkXDGTilsd9yJ0IyhfM=
|
||||||
codeberg.org/gruf/go-debug v1.3.0 h1:PIRxQiWUFKtGOGZFdZ3Y0pqyfI0Xr87j224IYe2snZs=
|
codeberg.org/gruf/go-debug v1.3.0 h1:PIRxQiWUFKtGOGZFdZ3Y0pqyfI0Xr87j224IYe2snZs=
|
||||||
codeberg.org/gruf/go-debug v1.3.0/go.mod h1:N+vSy9uJBQgpQcJUqjctvqFz7tBHJf+S/PIjLILzpLg=
|
codeberg.org/gruf/go-debug v1.3.0/go.mod h1:N+vSy9uJBQgpQcJUqjctvqFz7tBHJf+S/PIjLILzpLg=
|
||||||
codeberg.org/gruf/go-errors/v2 v2.0.0/go.mod h1:ZRhbdhvgoUA3Yw6e56kd9Ox984RrvbEFC2pOXyHDJP4=
|
codeberg.org/gruf/go-errors/v2 v2.0.0/go.mod h1:ZRhbdhvgoUA3Yw6e56kd9Ox984RrvbEFC2pOXyHDJP4=
|
||||||
|
|
6
vendor/codeberg.org/gruf/go-cache/v3/cache.go
generated
vendored
6
vendor/codeberg.org/gruf/go-cache/v3/cache.go
generated
vendored
|
@ -26,10 +26,10 @@ type Cache[Key comparable, Value any] interface {
|
||||||
// Get fetches the value with key from the cache, extending its TTL.
|
// Get fetches the value with key from the cache, extending its TTL.
|
||||||
Get(key Key) (value Value, ok bool)
|
Get(key Key) (value Value, ok bool)
|
||||||
|
|
||||||
// Add attempts to place the value at key in the cache, doing nothing if a value with this key already exists. Returned bool is success state.
|
// Add attempts to place the value at key in the cache, doing nothing if a value with this key already exists. Returned bool is success state. Calls invalidate callback on success.
|
||||||
Add(key Key, value Value) bool
|
Add(key Key, value Value) bool
|
||||||
|
|
||||||
// Set places the value at key in the cache. This will overwrite any existing value, and call the update callback so. Existing values will have their TTL extended upon update.
|
// Set places the value at key in the cache. This will overwrite any existing value. Existing values will have their TTL extended upon update. Always calls invalidate callback.
|
||||||
Set(key Key, value Value)
|
Set(key Key, value Value)
|
||||||
|
|
||||||
// CAS will attempt to perform a CAS operation on 'key', using provided old and new values, and comparator function. Returned bool is success.
|
// CAS will attempt to perform a CAS operation on 'key', using provided old and new values, and comparator function. Returned bool is success.
|
||||||
|
@ -44,7 +44,7 @@ type Cache[Key comparable, Value any] interface {
|
||||||
// Invalidate deletes a value from the cache, calling the invalidate callback.
|
// Invalidate deletes a value from the cache, calling the invalidate callback.
|
||||||
Invalidate(key Key) bool
|
Invalidate(key Key) bool
|
||||||
|
|
||||||
// Clear empties the cache, calling the invalidate callback.
|
// Clear empties the cache, calling the invalidate callback on each entry.
|
||||||
Clear()
|
Clear()
|
||||||
|
|
||||||
// Len returns the current length of the cache.
|
// Len returns the current length of the cache.
|
||||||
|
|
7
vendor/codeberg.org/gruf/go-cache/v3/result/cache.go
generated
vendored
7
vendor/codeberg.org/gruf/go-cache/v3/result/cache.go
generated
vendored
|
@ -28,6 +28,7 @@ type Lookup struct {
|
||||||
// cache would be in wrapping a database, allowing caching of sql.ErrNoRows.
|
// cache would be in wrapping a database, allowing caching of sql.ErrNoRows.
|
||||||
type Cache[Value any] struct {
|
type Cache[Value any] struct {
|
||||||
cache ttl.Cache[int64, result[Value]] // underlying result cache
|
cache ttl.Cache[int64, result[Value]] // underlying result cache
|
||||||
|
invalid func(Value) // store unwrapped invalidate callback.
|
||||||
lookups structKeys // pre-determined struct lookups
|
lookups structKeys // pre-determined struct lookups
|
||||||
ignore func(error) bool // determines cacheable errors
|
ignore func(error) bool // determines cacheable errors
|
||||||
copy func(Value) Value // copies a Value type
|
copy func(Value) Value // copies a Value type
|
||||||
|
@ -114,7 +115,8 @@ func (c *Cache[Value]) SetInvalidateCallback(hook func(Value)) {
|
||||||
if hook == nil {
|
if hook == nil {
|
||||||
// Ensure non-nil hook.
|
// Ensure non-nil hook.
|
||||||
hook = func(Value) {}
|
hook = func(Value) {}
|
||||||
}
|
} // store hook.
|
||||||
|
c.invalid = hook
|
||||||
c.cache.SetInvalidateCallback(func(item *ttl.Entry[int64, result[Value]]) {
|
c.cache.SetInvalidateCallback(func(item *ttl.Entry[int64, result[Value]]) {
|
||||||
for _, key := range item.Value.Keys {
|
for _, key := range item.Value.Keys {
|
||||||
// Delete key->pkey lookup
|
// Delete key->pkey lookup
|
||||||
|
@ -241,6 +243,9 @@ func (c *Cache[Value]) Store(value Value, store func() error) error {
|
||||||
// Cache result
|
// Cache result
|
||||||
c.store(result)
|
c.store(result)
|
||||||
|
|
||||||
|
// Call invalidate.
|
||||||
|
c.invalid(value)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
45
vendor/codeberg.org/gruf/go-cache/v3/ttl/ttl.go
generated
vendored
45
vendor/codeberg.org/gruf/go-cache/v3/ttl/ttl.go
generated
vendored
|
@ -19,10 +19,10 @@ type Cache[Key comparable, Value any] struct {
|
||||||
// TTL is the cache item TTL.
|
// TTL is the cache item TTL.
|
||||||
TTL time.Duration
|
TTL time.Duration
|
||||||
|
|
||||||
// Evict is the hook that is called when an item is evicted from the cache, includes manual delete.
|
// Evict is the hook that is called when an item is evicted from the cache.
|
||||||
Evict func(*Entry[Key, Value])
|
Evict func(*Entry[Key, Value])
|
||||||
|
|
||||||
// Invalid is the hook that is called when an item's data in the cache is invalidated.
|
// Invalid is the hook that is called when an item's data in the cache is invalidated, includes Add/Set.
|
||||||
Invalid func(*Entry[Key, Value])
|
Invalid func(*Entry[Key, Value])
|
||||||
|
|
||||||
// Cache is the underlying hashmap used for this cache.
|
// Cache is the underlying hashmap used for this cache.
|
||||||
|
@ -175,7 +175,7 @@ func (c *Cache[K, V]) SetTTL(ttl time.Duration, update bool) {
|
||||||
|
|
||||||
if update {
|
if update {
|
||||||
// Update existing cache entries with new expiry time
|
// Update existing cache entries with new expiry time
|
||||||
c.Cache.Range(0, c.Cache.Len(), func(i int, key K, item *Entry[K, V]) {
|
c.Cache.Range(0, c.Cache.Len(), func(i int, _ K, item *Entry[K, V]) {
|
||||||
item.Expiry = item.Expiry.Add(diff)
|
item.Expiry = item.Expiry.Add(diff)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -205,13 +205,14 @@ func (c *Cache[K, V]) Add(key K, value V) bool {
|
||||||
c.Lock()
|
c.Lock()
|
||||||
defer c.Unlock()
|
defer c.Unlock()
|
||||||
|
|
||||||
// If already cached, return
|
// Check if already exists
|
||||||
if c.Cache.Has(key) {
|
item, ok := c.Cache.Get(key)
|
||||||
|
if ok {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// Alloc new item
|
// Alloc new item
|
||||||
item := c.alloc()
|
item = c.alloc()
|
||||||
item.Key = key
|
item.Key = key
|
||||||
item.Value = value
|
item.Value = value
|
||||||
item.Expiry = time.Now().Add(c.TTL)
|
item.Expiry = time.Now().Add(c.TTL)
|
||||||
|
@ -228,6 +229,11 @@ func (c *Cache[K, V]) Add(key K, value V) bool {
|
||||||
// Place new item in the map with hook
|
// Place new item in the map with hook
|
||||||
c.Cache.SetWithHook(key, item, hook)
|
c.Cache.SetWithHook(key, item, hook)
|
||||||
|
|
||||||
|
if c.Invalid != nil {
|
||||||
|
// invalidate old
|
||||||
|
c.Invalid(item)
|
||||||
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,16 +246,27 @@ func (c *Cache[K, V]) Set(key K, value V) {
|
||||||
// Check if already exists
|
// Check if already exists
|
||||||
item, ok := c.Cache.Get(key)
|
item, ok := c.Cache.Get(key)
|
||||||
|
|
||||||
if ok {
|
if !ok {
|
||||||
if c.Invalid != nil {
|
var hook func(K, *Entry[K, V])
|
||||||
// Invalidate existing
|
|
||||||
c.Invalid(item)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Allocate new item
|
// Allocate new item
|
||||||
item = c.alloc()
|
item = c.alloc()
|
||||||
item.Key = key
|
item.Key = key
|
||||||
c.Cache.Set(key, item)
|
|
||||||
|
if c.Evict != nil {
|
||||||
|
// Pass evicted entry to user hook
|
||||||
|
hook = func(_ K, item *Entry[K, V]) {
|
||||||
|
c.Evict(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Place new item in the map with hook
|
||||||
|
c.Cache.SetWithHook(key, item, hook)
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.Invalid != nil {
|
||||||
|
// invalidate old
|
||||||
|
c.Invalid(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the item value + expiry
|
// Update the item value + expiry
|
||||||
|
@ -270,7 +287,7 @@ func (c *Cache[K, V]) CAS(key K, old V, new V, cmp func(V, V) bool) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.Invalid != nil {
|
if c.Invalid != nil {
|
||||||
// Invalidate item
|
// invalidate old
|
||||||
c.Invalid(item)
|
c.Invalid(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
|
@ -13,7 +13,7 @@ codeberg.org/gruf/go-bytesize
|
||||||
# codeberg.org/gruf/go-byteutil v1.1.2
|
# codeberg.org/gruf/go-byteutil v1.1.2
|
||||||
## explicit; go 1.16
|
## explicit; go 1.16
|
||||||
codeberg.org/gruf/go-byteutil
|
codeberg.org/gruf/go-byteutil
|
||||||
# codeberg.org/gruf/go-cache/v3 v3.2.3
|
# codeberg.org/gruf/go-cache/v3 v3.2.5
|
||||||
## explicit; go 1.19
|
## explicit; go 1.19
|
||||||
codeberg.org/gruf/go-cache/v3
|
codeberg.org/gruf/go-cache/v3
|
||||||
codeberg.org/gruf/go-cache/v3/result
|
codeberg.org/gruf/go-cache/v3/result
|
||||||
|
|
Loading…
Reference in a new issue