summaryrefslogtreecommitdiff
path: root/shrine/utils/collections/set.go
blob: fb6b1eb2a81b80b19e6852327119e0d08b2c8bb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package collections

type Set[T comparable] map[T]struct{}

func SetOf[T comparable](values ...T) Set[T] {
	set := make(Set[T], len(values))
	for _, value := range values {
		set[value] = struct{}{}
	}
	return set
}

func (set Set[T]) Has(value T) bool {
	_, exists := set[value]
	return exists
}