···11package hashset
2233type Set[T comparable] map[T]struct{}
44+55+// New creates and returns a new empty Set.
66+func New[T comparable]() Set[T] {
77+ return make(Set[T])
88+}
99+1010+// Add inserts an element into the set.
1111+func (s Set[T]) Add(value T) {
1212+ s[value] = struct{}{}
1313+}
1414+1515+// Remove deletes an element from the set.
1616+func (s Set[T]) Remove(value T) {
1717+ delete(s, value)
1818+}
1919+2020+// Size returns the number of elements in the set.
2121+func (s Set[T]) Size() int {
2222+ return len(s)
2323+}