From fb238910a01745e678d8021b63604326bb6d2090 Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Mon, 2 Jun 2025 20:14:22 +0100 Subject: [PATCH] set: introduce basic set operations Change-Id: mytwqvqtwlrrwvqnyswuxpmyssppvqtr introduces New, Add, Remove and Size Signed-off-by: oppiliappan --- set.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/set.go b/set.go index 7719249..2b0fe8d 100644 --- a/set.go +++ b/set.go @@ -1,3 +1,23 @@ package hashset type Set[T comparable] map[T]struct{} + +// New creates and returns a new empty Set. +func New[T comparable]() Set[T] { + return make(Set[T]) +} + +// Add inserts an element into the set. +func (s Set[T]) Add(value T) { + s[value] = struct{}{} +} + +// Remove deletes an element from the set. +func (s Set[T]) Remove(value T) { + delete(s, value) +} + +// Size returns the number of elements in the set. +func (s Set[T]) Size() int { + return len(s) +} -- 2.43.0