diff --git a/fn/set.go b/fn/set.go index c3a3264708..faeb9d7df6 100644 --- a/fn/set.go +++ b/fn/set.go @@ -95,6 +95,15 @@ func (s Set[T]) ToSlice() []T { return maps.Keys(s) } +// Copy copies s and returns the result. +func (s Set[T]) Copy() Set[T] { + copy := make(Set[T]) + for e := range s { + copy.Add(e) + } + return copy +} + // SetDiff returns all the items that are in the first set but not in the // second. func SetDiff[T comparable](a, b []T) []T {