diff --git a/misc.go b/misc.go index 5b89537..cf56708 100644 --- a/misc.go +++ b/misc.go @@ -16,12 +16,14 @@ func assert(cond bool) { } // Ensure that the given elements are only appended to the given slice if they -// don't already exist. -func unique_append[T comparable](slc []T, items ...T) []T { +// don't already exist. Returns the new slice, and the number of unique items appended. +func unique_append[T comparable](slc []T, items ...T) ([]T, int) { + num_appended := 0 for _, item := range items { if !slices.Contains(slc, item) { slc = append(slc, item) + num_appended++ } } - return slc + return slc, num_appended }