diff options
author | Martin Czygan <martin.czygan@gmail.com> | 2021-04-28 02:32:50 +0200 |
---|---|---|
committer | Martin Czygan <martin.czygan@gmail.com> | 2021-04-28 02:32:50 +0200 |
commit | a4dc83d8f09cfb675334bc58db66f552a4e4d099 (patch) | |
tree | ef08235fdb50b96c7e1420fc46a2bff17b658a29 /skate/set | |
parent | 77b04eece2faad6710c42a0965edb970692235f8 (diff) | |
download | refcat-a4dc83d8f09cfb675334bc58db66f552a4e4d099.tar.gz refcat-a4dc83d8f09cfb675334bc58db66f552a4e4d099.zip |
use sync.Pool for temporary data
Diffstat (limited to 'skate/set')
-rw-r--r-- | skate/set/set.go | 8 | ||||
-rw-r--r-- | skate/set/set_test.go | 3 |
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) } |