From a4dc83d8f09cfb675334bc58db66f552a4e4d099 Mon Sep 17 00:00:00 2001 From: Martin Czygan Date: Wed, 28 Apr 2021 02:32:50 +0200 Subject: use sync.Pool for temporary data --- skate/set/set.go | 8 +++++++- skate/set/set_test.go | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'skate/set') 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) } -- cgit v1.2.3