summaryrefslogtreecommitdiff
path: root/vendor/github.com/minio/minio-go/v7/pkg/set/stringset.go
diff options
context:
space:
mode:
authorLibravatar kim <grufwub@gmail.com>2025-05-22 16:27:55 +0200
committerLibravatar kim <gruf@noreply.codeberg.org>2025-05-22 16:27:55 +0200
commitb6ff55662e0281c0d6e111f9307625ef695df2fa (patch)
tree5f7761efa0b51a7a7d56f96fce3681c8e9b66fe9 /vendor/github.com/minio/minio-go/v7/pkg/set/stringset.go
parent[chore/woodpecker] don't make `test` depend on `lint` (#4189) (diff)
downloadgotosocial-b6ff55662e0281c0d6e111f9307625ef695df2fa.tar.xz
[chore] update dependencies (#4188)
Update dependencies: - github.com/gin-gonic/gin v1.10.0 -> v1.10.1 - github.com/gin-contrib/sessions v1.10.3 -> v1.10.4 - github.com/jackc/pgx/v5 v5.7.4 -> v5.7.5 - github.com/minio/minio-go/v7 v7.0.91 -> v7.0.92 - github.com/pquerna/otp v1.4.0 -> v1.5.0 - github.com/tdewolff/minify/v2 v2.23.5 -> v2.23.8 - github.com/yuin/goldmark v1.7.11 -> v1.7.12 - go.opentelemetry.io/otel{,/*} v1.35.0 -> v1.36.0 - modernc.org/sqlite v1.37.0 -> v1.37.1 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4188 Reviewed-by: Daenney <daenney@noreply.codeberg.org> Co-authored-by: kim <grufwub@gmail.com> Co-committed-by: kim <grufwub@gmail.com>
Diffstat (limited to 'vendor/github.com/minio/minio-go/v7/pkg/set/stringset.go')
-rw-r--r--vendor/github.com/minio/minio-go/v7/pkg/set/stringset.go30
1 files changed, 27 insertions, 3 deletions
diff --git a/vendor/github.com/minio/minio-go/v7/pkg/set/stringset.go b/vendor/github.com/minio/minio-go/v7/pkg/set/stringset.go
index c265ce572..8aa92212b 100644
--- a/vendor/github.com/minio/minio-go/v7/pkg/set/stringset.go
+++ b/vendor/github.com/minio/minio-go/v7/pkg/set/stringset.go
@@ -21,7 +21,7 @@ import (
"fmt"
"sort"
- "github.com/goccy/go-json"
+ "github.com/minio/minio-go/v7/internal/json"
)
// StringSet - uses map as set of strings.
@@ -37,6 +37,30 @@ func (set StringSet) ToSlice() []string {
return keys
}
+// ToByteSlices - returns StringSet as a sorted
+// slice of byte slices, using only one allocation.
+func (set StringSet) ToByteSlices() [][]byte {
+ length := 0
+ for k := range set {
+ length += len(k)
+ }
+ // Preallocate the slice with the total length of all strings
+ // to avoid multiple allocations.
+ dst := make([]byte, length)
+
+ // Add keys to this...
+ keys := make([][]byte, 0, len(set))
+ for k := range set {
+ n := copy(dst, k)
+ keys = append(keys, dst[:n])
+ dst = dst[n:]
+ }
+ sort.Slice(keys, func(i, j int) bool {
+ return string(keys[i]) < string(keys[j])
+ })
+ return keys
+}
+
// IsEmpty - returns whether the set is empty or not.
func (set StringSet) IsEmpty() bool {
return len(set) == 0
@@ -178,7 +202,7 @@ func NewStringSet() StringSet {
// CreateStringSet - creates new string set with given string values.
func CreateStringSet(sl ...string) StringSet {
- set := make(StringSet)
+ set := make(StringSet, len(sl))
for _, k := range sl {
set.Add(k)
}
@@ -187,7 +211,7 @@ func CreateStringSet(sl ...string) StringSet {
// CopyStringSet - returns copy of given set.
func CopyStringSet(set StringSet) StringSet {
- nset := NewStringSet()
+ nset := make(StringSet, len(set))
for k, v := range set {
nset[k] = v
}