mirror of
https://github.com/go-task/task.git
synced 2024-12-14 10:52:43 +02:00
1c1be683ab
Co-authored-by: Andrey Nering <andrey@nering.com.br>
21 lines
336 B
Go
21 lines
336 B
Go
package slicesext
|
|
|
|
import (
|
|
"golang.org/x/exp/constraints"
|
|
"golang.org/x/exp/slices"
|
|
)
|
|
|
|
func UniqueJoin[T constraints.Ordered](ss ...[]T) []T {
|
|
var length int
|
|
for _, s := range ss {
|
|
length += len(s)
|
|
}
|
|
r := make([]T, length)
|
|
var i int
|
|
for _, s := range ss {
|
|
i += copy(r[i:], s)
|
|
}
|
|
slices.Sort(r)
|
|
return slices.Compact(r)
|
|
}
|