From adf345f1ec0cb76a0df94a4505143d891659cba9 Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Tue, 2 Apr 2024 11:03:40 +0100 Subject: [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 :innocent: --------- Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com> --- vendor/codeberg.org/gruf/go-structr/key.go | 58 ++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 vendor/codeberg.org/gruf/go-structr/key.go (limited to 'vendor/codeberg.org/gruf/go-structr/key.go') diff --git a/vendor/codeberg.org/gruf/go-structr/key.go b/vendor/codeberg.org/gruf/go-structr/key.go new file mode 100644 index 000000000..d68e3fe19 --- /dev/null +++ b/vendor/codeberg.org/gruf/go-structr/key.go @@ -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) +} -- cgit v1.2.3