2024-09-16 22:41:46 +00:00
|
|
|
package astgen
|
2024-09-11 00:52:18 +00:00
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func PanicF(format string, args ...interface{}) {
|
|
|
|
|
panic(fmt.Sprintf(format, args...))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func Unique[T any](slice []T, key func(item T) string) []T {
|
|
|
|
|
var result []T
|
|
|
|
|
seen := make(map[string]bool)
|
|
|
|
|
for _, v := range slice {
|
|
|
|
|
k := key(v)
|
|
|
|
|
if _, ok := seen[k]; !ok {
|
|
|
|
|
seen[k] = true
|
|
|
|
|
result = append(result, v)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return result
|
|
|
|
|
}
|