mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
update gruf / {go-cache, go-maps, go-kv} (#3361)
This commit is contained in:
6
vendor/codeberg.org/gruf/go-cache/v3/README.md
generated
vendored
6
vendor/codeberg.org/gruf/go-cache/v3/README.md
generated
vendored
@@ -9,9 +9,3 @@ A `cache.Cache{}` implementation with much more of the inner workings exposed. D
|
||||
## ttl
|
||||
|
||||
A `cache.TTLCache{}` implementation with much more of the inner workings exposed. Designed to be used as a base for your own customizations, or used as-is.
|
||||
|
||||
## result
|
||||
|
||||
`result.Cache` is an example of a more complex cache implementation using `ttl.Cache{}` as its underpinning.
|
||||
|
||||
It provides caching specifically of loadable struct types, with automatic keying by multiple different field members and caching of negative (error) values. All useful when wrapping, for example, a database.
|
6
vendor/codeberg.org/gruf/go-kv/format/format.go
generated
vendored
6
vendor/codeberg.org/gruf/go-kv/format/format.go
generated
vendored
@@ -197,7 +197,8 @@ func (f format) AppendBytes(b []byte) {
|
||||
|
||||
// Quoted only if spaces/requires escaping
|
||||
case f.Key():
|
||||
f.AppendStringSafe(b2s(b))
|
||||
s := byteutil.B2S(b)
|
||||
f.AppendStringSafe(s)
|
||||
|
||||
// Append as separate ASCII quoted bytes in slice
|
||||
case f.Verbose():
|
||||
@@ -214,7 +215,8 @@ func (f format) AppendBytes(b []byte) {
|
||||
|
||||
// Quoted only if spaces/requires escaping
|
||||
case f.Value():
|
||||
f.AppendStringSafe(b2s(b))
|
||||
s := byteutil.B2S(b)
|
||||
f.AppendStringSafe(s)
|
||||
|
||||
// Append as raw bytes
|
||||
default:
|
||||
|
5
vendor/codeberg.org/gruf/go-kv/format/util.go
generated
vendored
5
vendor/codeberg.org/gruf/go-kv/format/util.go
generated
vendored
@@ -98,8 +98,3 @@ func isNil(i interface{}) bool {
|
||||
type eface struct{ _type, data unsafe.Pointer } //nolint
|
||||
return (*(*eface)(unsafe.Pointer(&i))).data == nil //nolint
|
||||
}
|
||||
|
||||
// b2s converts a byteslice to string without allocation.
|
||||
func b2s(b []byte) string {
|
||||
return *(*string)(unsafe.Pointer(&b))
|
||||
}
|
||||
|
20
vendor/codeberg.org/gruf/go-maps/common.go
generated
vendored
20
vendor/codeberg.org/gruf/go-maps/common.go
generated
vendored
@@ -17,7 +17,7 @@ type ordered[K comparable, V any] struct {
|
||||
}
|
||||
|
||||
// write_check panics if map is not in a safe-state to write to.
|
||||
func (m ordered[K, V]) write_check() {
|
||||
func (m *ordered[K, V]) write_check() {
|
||||
if m.rnly {
|
||||
panic("map write during read loop")
|
||||
}
|
||||
@@ -54,15 +54,17 @@ func (m *ordered[K, V]) Delete(key K) bool {
|
||||
|
||||
// Range passes given function over the requested range of the map.
|
||||
func (m *ordered[K, V]) Range(start, length int, fn func(int, K, V)) {
|
||||
// Nil check
|
||||
if fn == nil {
|
||||
panic("nil func")
|
||||
}
|
||||
|
||||
// Disallow writes
|
||||
m.rnly = true
|
||||
defer func() {
|
||||
m.rnly = false
|
||||
}()
|
||||
|
||||
// Nil check
|
||||
_ = fn
|
||||
|
||||
switch end := start + length; {
|
||||
// No loop to iterate
|
||||
case length == 0:
|
||||
@@ -104,15 +106,17 @@ func (m *ordered[K, V]) Range(start, length int, fn func(int, K, V)) {
|
||||
|
||||
// RangeIf passes given function over the requested range of the map. Returns early on 'fn' -> false.
|
||||
func (m *ordered[K, V]) RangeIf(start, length int, fn func(int, K, V) bool) {
|
||||
// Nil check
|
||||
if fn == nil {
|
||||
panic("nil func")
|
||||
}
|
||||
|
||||
// Disallow writes
|
||||
m.rnly = true
|
||||
defer func() {
|
||||
m.rnly = false
|
||||
}()
|
||||
|
||||
// Nil check
|
||||
_ = fn
|
||||
|
||||
switch end := start + length; {
|
||||
// No loop to iterate
|
||||
case length == 0:
|
||||
@@ -163,8 +167,8 @@ func (m *ordered[K, V]) Truncate(sz int, fn func(K, V)) {
|
||||
panic("index out of bounds")
|
||||
}
|
||||
|
||||
// Nil check
|
||||
if fn == nil {
|
||||
// move nil check out of loop
|
||||
fn = func(K, V) {}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user