From f258717f267c69ecda02c9344e31272aa20a86bd Mon Sep 17 00:00:00 2001 From: deads2k Date: Wed, 29 Apr 2015 11:24:38 -0400 Subject: [PATCH] add StringSet.HasAny --- pkg/util/set.go | 10 ++++++++++ pkg/util/set_test.go | 12 ++++++++++++ 2 files changed, 22 insertions(+) diff --git a/pkg/util/set.go b/pkg/util/set.go index 5141cdba106..75b60eafb8e 100644 --- a/pkg/util/set.go +++ b/pkg/util/set.go @@ -75,6 +75,16 @@ func (s StringSet) HasAll(items ...string) bool { return true } +// HasAny returns true if any items are contained in the set. +func (s StringSet) HasAny(items ...string) bool { + for _, item := range items { + if s.Has(item) { + return true + } + } + return false +} + // Difference returns a set of objects that are not in s2 // For example: // s1 = {1, 2, 3} diff --git a/pkg/util/set_test.go b/pkg/util/set_test.go index a7a1de4d0cc..f039743782b 100644 --- a/pkg/util/set_test.go +++ b/pkg/util/set_test.go @@ -117,3 +117,15 @@ func TestStringSetDifference(t *testing.T) { t.Errorf("Unexpected contents: %#v", d.List()) } } + +func TestStringSetHasAny(t *testing.T) { + a := NewStringSet("1", "2", "3") + + if !a.HasAny("1", "4") { + t.Errorf("expected true, got false") + } + + if a.HasAny("0", "4") { + t.Errorf("expected false, got true") + } +}