aboutsummaryrefslogtreecommitdiffstats
path: root/skate/set
diff options
context:
space:
mode:
authorMartin Czygan <martin.czygan@gmail.com>2021-04-28 02:32:50 +0200
committerMartin Czygan <martin.czygan@gmail.com>2021-04-28 02:32:50 +0200
commita4dc83d8f09cfb675334bc58db66f552a4e4d099 (patch)
treeef08235fdb50b96c7e1420fc46a2bff17b658a29 /skate/set
parent77b04eece2faad6710c42a0965edb970692235f8 (diff)
downloadrefcat-a4dc83d8f09cfb675334bc58db66f552a4e4d099.tar.gz
refcat-a4dc83d8f09cfb675334bc58db66f552a4e4d099.zip
use sync.Pool for temporary data
Diffstat (limited to 'skate/set')
-rw-r--r--skate/set/set.go8
-rw-r--r--skate/set/set_test.go3
2 files changed, 10 insertions, 1 deletions
diff --git a/skate/set/set.go b/skate/set/set.go
index a198094..6bad47e 100644
--- a/skate/set/set.go
+++ b/skate/set/set.go
@@ -5,9 +5,15 @@ import (
"strings"
)
-// Set implements basic string set operations.
+// Set implements basic string set operations, not thread-safe.
type Set map[string]struct{}
+func (s *Set) Clear() {
+ for k := range *s {
+ delete(*s, k)
+ }
+}
+
// Add adds an element.
func (s *Set) Add(v string) *Set {
(*s)[v] = struct{}{}
diff --git a/skate/set/set_test.go b/skate/set/set_test.go
index c319759..403b6df 100644
--- a/skate/set/set_test.go
+++ b/skate/set/set_test.go
@@ -36,4 +36,7 @@ func TestSet(t *testing.T) {
top.Add("2")
top.Add("3")
is.Equal(r.TopK(2), &top)
+
+ r.Clear()
+ is.Equal(r.Len(), 0)
}