introduces New, Add, Remove and Size
Signed-off-by: oppiliappan me@oppi.li
··· 1 1 package hashset 2 2 3 3 type Set[T comparable] map[T]struct{} 4 4 + 5 5 + // New creates and returns a new empty Set. 6 6 + func New[T comparable]() Set[T] { 7 7 + return make(Set[T]) 8 8 + } 9 9 + 10 10 + // Add inserts an element into the set. 11 11 + func (s Set[T]) Add(value T) { 12 12 + s[value] = struct{}{} 13 13 + } 14 14 + 15 15 + // Remove deletes an element from the set. 16 16 + func (s Set[T]) Remove(value T) { 17 17 + delete(s, value) 18 18 + } 19 19 + 20 20 + // Size returns the number of elements in the set. 21 21 + func (s Set[T]) Size() int { 22 22 + return len(s) 23 23 + }