Documentation
¶
Index ¶
- func List[T cmp.Ordered](s Set[T]) []T
- func NewErrors(errs []error) error
- type Empty
- type Set
- func (s Set[T]) Add(items ...T) Set[T]
- func (s Set[T]) Clear() Set[T]
- func (s Set[T]) Clone() Set[T]
- func (s Set[T]) Difference(s2 Set[T]) Set[T]
- func (s Set[T]) Equal(s2 Set[T]) bool
- func (s Set[T]) Has(item T) bool
- func (s Set[T]) HasAll(items ...T) bool
- func (s Set[T]) HasAny(items ...T) bool
- func (s Set[T]) Intersection(s2 Set[T]) Set[T]
- func (s Set[T]) IsSuperset(s2 Set[T]) bool
- func (s Set[T]) IsZero() bool
- func (s Set[T]) Len() int
- func (s Set[T]) MarshalJSON() ([]byte, error)
- func (s Set[T]) PopAny() (T, bool)
- func (s Set[T]) Range(fn func(item T) error) error
- func (s Set[T]) Remove(items ...T) Set[T]
- func (s Set[T]) String() string
- func (s Set[T]) SymmetricDifference(s2 Set[T]) Set[T]
- func (s Set[T]) Union(s2 Set[T]) Set[T]
- func (s *Set[T]) UnmarshalJSON(data []byte) error
- func (s Set[T]) UnsortedList() []T
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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 Set ¶
type Set[T comparable] map[T]Empty
Set is a set of the same type elements, implemented via map[comparable]struct{} for minimal memory consumption.
func KeySet ¶
func KeySet[T comparable, V any](theMap map[T]V) Set[T]
KeySet creates a Set from a keys of a map[comparable](? extends interface{}). If the value passed in is not actually a map, this will panic.
func New ¶
func New[T comparable](items ...T) Set[T]
New creates a Set from a list of values. NOTE: type param must be explicitly instantiated if given items are empty.
func NewWithSize ¶
func NewWithSize[T comparable](size int, items ...T) Set[T]
NewWithSize creates a Set from a list of values with size.
func (Set[T]) Clear ¶
Clear empties the set. It is preferable to replace the set with a newly constructed set, but not all callers can do that (when there are other references to the map).
func (Set[T]) 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 (Set[T]) 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 (Set[T]) 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 (Set[T]) IsSuperset ¶
IsSuperset returns true if and only if s1 is a superset of s2.
func (Set[T]) MarshalJSON ¶
MarshalJSON @implements json.Marshaler
func (Set[T]) SymmetricDifference ¶
SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection. For example: s1 = {a1, a2, a3} s2 = {a1, a2, a4, a5} s1.SymmetricDifference(s2) = {a3, a4, a5} s2.SymmetricDifference(s1) = {a3, a4, a5}
func (Set[T]) 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 (*Set[T]) UnmarshalJSON ¶
UnmarshalJSON @implements json.Unmarshaler
func (Set[T]) UnsortedList ¶
func (s Set[T]) UnsortedList() []T
UnsortedList returns the slice with contents in random order.