aboutsummaryrefslogtreecommitdiffstats
path: root/skate/set
diff options
context:
space:
mode:
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)
}