Documentation
¶
Overview ¶
Package set contains set types.
Index ¶
- type Handle
- type HandleSet
- type IntSet
- type Set
- func (s Set[T]) Add(e T)
- func (s Set[T]) AddSet(es Set[T])
- func (s Set[T]) AddSlice(es []T)
- func (s Set[T]) Clone() Set[T]
- func (s Set[T]) Contains(e T) bool
- func (s Set[T]) Delete(e T)
- func (s Set[T]) Equal(other Set[T]) bool
- func (s Set[T]) Len() int
- func (s *Set[T]) Make()
- func (s Set[T]) MarshalJSON() ([]byte, error)
- func (s Set[T]) Slice() []T
- func (s *Set[T]) UnmarshalJSON(buf []byte) error
- type Slice
- type SmallSet
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Handle ¶
type Handle struct {
// contains filtered or unexported fields
}
Handle is an opaque comparable value that's used as the map key in a HandleSet. The only way to get one is to call HandleSet.Add.
type IntSet ¶ added in v1.86.0
type IntSet[T constraints.Integer] struct { // contains filtered or unexported fields }
IntSet is a set optimized for integer values close to zero or set of integers that are close in value.
func (*IntSet[T]) Add ¶ added in v1.86.0
func (s *IntSet[T]) Add(e T)
Add adds e to the set.
When storing a IntSet in a map as a value type, it is important to re-assign the map entry after calling Add or Delete, as the IntSet's representation may change.
func (IntSet[T]) Clone ¶ added in v1.86.0
Clone returns a copy of s that doesn't alias the original.
func (*IntSet[T]) Delete ¶ added in v1.86.0
func (s *IntSet[T]) Delete(e T)
Delete removes e from the set.
When storing a IntSet in a map as a value type, it is important to re-assign the map entry after calling Add or Delete, as the IntSet's representation may change.
type Set ¶ added in v1.42.0
type Set[T comparable] map[T]struct{}
Set is a set of T.
func Of ¶ added in v1.66.0
func Of[T comparable](slice ...T) Set[T]
Of returns a new set constructed from the elements in slice.
func SetOf ¶ added in v1.52.0
func SetOf[T comparable](slice []T) Set[T]
SetOf returns a new set constructed from the elements in slice.
func (Set[T]) AddSlice ¶ added in v1.52.0
func (s Set[T]) AddSlice(es []T)
AddSlice adds each element of es to s.
func (*Set[T]) Make ¶ added in v1.66.0
func (s *Set[T]) Make()
Make lazily initializes the map pointed to by s to be non-nil.
func (Set[T]) MarshalJSON ¶ added in v1.56.0
func (Set[T]) Slice ¶ added in v1.52.0
func (s Set[T]) Slice() []T
Slice returns the elements of the set as a slice. The elements will not be in any particular order.
func (*Set[T]) UnmarshalJSON ¶ added in v1.56.0
type Slice ¶ added in v1.40.0
type Slice[T comparable] struct { // contains filtered or unexported fields }
Slice is a set of elements tracked in a slice of unique elements.
func (*Slice[T]) Add ¶ added in v1.40.0
func (ss *Slice[T]) Add(vs ...T)
Add adds each element in vs to the set. The amortized cost is O(1) per element.
func (*Slice[T]) Contains ¶ added in v1.40.0
Contains reports whether v is in the set. The amortized cost is O(1).
type SmallSet ¶ added in v1.86.0
type SmallSet[T comparable] struct { // contains filtered or unexported fields }
SmallSet is a set that is optimized for reducing memory overhead when the expected size of the set is 0 or 1 elements.
The zero value of SmallSet is a usable empty set.
When storing a SmallSet in a map as a value type, it is important to re-assign the map entry after calling Add or Delete, as the SmallSet's representation may change.
Copying a SmallSet by value may alias the previous value. Use the Clone method to create a new SmallSet with the same contents.
func (*SmallSet[T]) Add ¶ added in v1.86.0
func (s *SmallSet[T]) Add(e T)
Add adds e to the set.
When storing a SmallSet in a map as a value type, it is important to re-assign the map entry after calling Add or Delete, as the SmallSet's representation may change.
func (SmallSet[T]) Clone ¶ added in v1.86.0
Clone returns a copy of s that doesn't alias the original.
func (*SmallSet[T]) Delete ¶ added in v1.86.0
func (s *SmallSet[T]) Delete(e T)
Delete removes e from the set.
When storing a SmallSet in a map as a value type, it is important to re-assign the map entry after calling Add or Delete, as the SmallSet's representation may change.
func (SmallSet[T]) SoleElement ¶ added in v1.86.0
SoleElement returns the single value in the set, if the set has exactly one element.
If the set is empty or has more than one element, ok will be false and e will be the zero value of T.