mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 18:02:25 -05:00
[chore] bump go structr cache version -> v0.6.0 (#2773)
* update go-structr library -> v0.6.0, add necessary wrapping types + code changes to support these changes
* update readme with go-structr package changes
* improved wrapping of the SliceCache type
* add code comments for the cache wrapper types
* remove test.out 😇
---------
Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com>
This commit is contained in:
parent
f05874be30
commit
adf345f1ec
62 changed files with 2412 additions and 5857 deletions
58
vendor/codeberg.org/gruf/go-structr/key.go
generated
vendored
Normal file
58
vendor/codeberg.org/gruf/go-structr/key.go
generated
vendored
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
package structr
|
||||
|
||||
import (
|
||||
"sync"
|
||||
|
||||
"codeberg.org/gruf/go-byteutil"
|
||||
)
|
||||
|
||||
// Key represents one key to
|
||||
// lookup (potentially) stored
|
||||
// entries in an Index.
|
||||
type Key struct {
|
||||
raw []any
|
||||
key string
|
||||
}
|
||||
|
||||
// Key returns the underlying cache key string.
|
||||
// NOTE: this will not be log output friendly.
|
||||
func (k Key) Key() string {
|
||||
return k.key
|
||||
}
|
||||
|
||||
// Equal returns whether keys are equal.
|
||||
func (k Key) Equal(o Key) bool {
|
||||
return k.key == o.key
|
||||
}
|
||||
|
||||
// Value returns the raw slice of
|
||||
// values that comprise this Key.
|
||||
func (k Key) Values() []any {
|
||||
return k.raw
|
||||
}
|
||||
|
||||
// Zero indicates a zero value key.
|
||||
func (k Key) Zero() bool {
|
||||
return k.raw == nil
|
||||
}
|
||||
|
||||
var buf_pool sync.Pool
|
||||
|
||||
// new_buffer returns a new initialized byte buffer.
|
||||
func new_buffer() *byteutil.Buffer {
|
||||
v := buf_pool.Get()
|
||||
if v == nil {
|
||||
buf := new(byteutil.Buffer)
|
||||
buf.B = make([]byte, 0, 512)
|
||||
v = buf
|
||||
}
|
||||
return v.(*byteutil.Buffer)
|
||||
}
|
||||
|
||||
// free_buffer releases the byte buffer.
|
||||
func free_buffer(buf *byteutil.Buffer) {
|
||||
if cap(buf.B) > int(^uint16(0)) {
|
||||
return // drop large bufs
|
||||
}
|
||||
buf_pool.Put(buf)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue