Documentation ¶
Overview ¶
Package sets implements set types.
This is forked from k8s.io/apimachinery/pkg/util/sets (under the same project and license), because k8s.io/apimachinery is a relatively heavy dependency and we only need some trivial utilities. Avoiding importing k8s.io/apimachinery makes kind easier to embed in other projects for testing etc.
The set implementation is relatively small and very stable.
Index ¶
- type Empty
- type String
- func (s String) Delete(items ...string) String
- func (s String) Difference(s2 String) String
- func (s1 String) Equal(s2 String) bool
- func (s String) Has(item string) bool
- func (s String) HasAll(items ...string) bool
- func (s String) HasAny(items ...string) bool
- func (s String) Insert(items ...string) String
- func (s1 String) Intersection(s2 String) String
- func (s1 String) IsSuperset(s2 String) bool
- func (s String) Len() int
- func (s String) List() []string
- func (s String) PopAny() (string, bool)
- func (s1 String) Union(s2 String) String
- func (s String) UnsortedList() []string
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Empty ¶
type Empty struct{}
Empty is public since it is used by some internal API objects for conversions between external string arrays and internal sets, and conversion logic requires public types today.
type String ¶
sets.String is a set of strings, implemented via map[string]struct{} for minimal memory consumption.
func StringKeySet ¶
func StringKeySet(theMap interface{}) String
StringKeySet creates a String from a keys of a map[string](? extends interface{}). If the value passed in is not actually a map, this will panic.
func (String) Difference ¶
Difference returns a set of objects that are not in s2 For example: s1 = {a1, a2, a3} s2 = {a1, a2, a4, a5} s1.Difference(s2) = {a3} s2.Difference(s1) = {a4, a5}
func (String) Equal ¶
Equal returns true if and only if s1 is equal (as a set) to s2. Two sets are equal if their membership is identical. (In practice, this means same elements, order doesn't matter)
func (String) Intersection ¶
Intersection returns a new set which includes the item in BOTH s1 and s2 For example: s1 = {a1, a2} s2 = {a2, a3} s1.Intersection(s2) = {a2}
func (String) IsSuperset ¶
IsSuperset returns true if and only if s1 is a superset of s2.
func (String) Union ¶
Union returns a new set which includes items in either s1 or s2. For example: s1 = {a1, a2} s2 = {a3, a4} s1.Union(s2) = {a1, a2, a3, a4} s2.Union(s1) = {a1, a2, a3, a4}
func (String) UnsortedList ¶
UnsortedList returns the slice with contents in random order.