summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-structr/key.go
diff options
context:
space:
mode:
authorLibravatar kim <grufwub@gmail.com>2025-08-21 16:41:50 +0200
committerLibravatar kim <gruf@noreply.codeberg.org>2025-08-21 16:41:50 +0200
commita79f83cbded3fb1165b338ce316dc9f2217467ff (patch)
tree4b4a2b7084aced51c0a691cee6352b4ecae90df8 /vendor/codeberg.org/gruf/go-structr/key.go
parent[chore] bump golangci-lint version in CI, disable var-naming package name che... (diff)
downloadgotosocial-a79f83cbded3fb1165b338ce316dc9f2217467ff.tar.xz
[chore] update dependencies (#4386)
- codeberg.org/gruf/go-bytesize v1.0.3 -> v1.0.4 - codeberg.org/gruf/go-kv/v2 v2.0.6 -> v2.0.7 - codeberg.org/gruf/go-mutexes v1.5.2 -> v1.5.3 - codeberg.org/gruf/go-structr v0.9.7 -> v0.9.8 - codeberg.org/gruf/go-ffmpreg v0.6.8 -> v0.6.9 - github.com/tomnomnom/linkheader HEAD@2018 -> HEAD@2025 all of the above codeberg.org/gruf updates are in preparation for Go1.25, except for bytesize, and also ffmpreg which is a rebuild with the latest version of ffmpeg (v5.1.7) Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4386 Co-authored-by: kim <grufwub@gmail.com> Co-committed-by: kim <grufwub@gmail.com>
Diffstat (limited to 'vendor/codeberg.org/gruf/go-structr/key.go')
-rw-r--r--vendor/codeberg.org/gruf/go-structr/key.go37
1 files changed, 32 insertions, 5 deletions
diff --git a/vendor/codeberg.org/gruf/go-structr/key.go b/vendor/codeberg.org/gruf/go-structr/key.go
index 11e595b80..ad591f8ac 100644
--- a/vendor/codeberg.org/gruf/go-structr/key.go
+++ b/vendor/codeberg.org/gruf/go-structr/key.go
@@ -4,6 +4,7 @@ import (
"sync"
"codeberg.org/gruf/go-byteutil"
+ "codeberg.org/gruf/go-mangler/v2"
)
// Key represents one key to
@@ -14,6 +15,37 @@ type Key struct {
raw []any
}
+// MakeKey generates Key{} from given parts.
+func MakeKey(parts ...any) Key {
+ buf := new_buffer()
+ buf.B = mangler.AppendMulti(buf.B[:0], parts...)
+ key := string(buf.B)
+ free_buffer(buf)
+ return Key{
+ raw: parts,
+ key: key,
+ }
+}
+
+// MakeKeys generates []Key{} from given (multiple) parts.
+func MakeKeys(parts ...[]any) []Key {
+ keys := make([]Key, len(parts))
+ if len(keys) != len(parts) {
+ panic(assert("BCE"))
+ }
+ buf := new_buffer()
+ for x, parts := range parts {
+ buf.B = mangler.AppendMulti(buf.B[:0], parts...)
+ key := string(buf.B)
+ keys[x] = Key{
+ raw: parts,
+ key: key,
+ }
+ }
+ free_buffer(buf)
+ return keys
+}
+
// Key returns the underlying cache key string.
// NOTE: this will not be log output friendly.
func (k Key) Key() string {
@@ -31,11 +63,6 @@ func (k Key) Values() []any {
return k.raw
}
-// Zero indicates a zero value key.
-func (k Key) Zero() bool {
- return (k.key == "")
-}
-
var buf_pool sync.Pool
// new_buffer returns a new initialized byte buffer.