diff --git a/internal/sliceutil/sliceutil.go b/internal/sliceutil/sliceutil.go index 439ee6c6ce..e827886163 100644 --- a/internal/sliceutil/sliceutil.go +++ b/internal/sliceutil/sliceutil.go @@ -1,5 +1,18 @@ package sliceutil +func Deref[T any](slice []*T) []T { + if slice == nil { + return nil + } + out := make([]T, 0, len(slice)) + for _, p := range slice { + if p != nil { + out = append(out, *p) + } + } + return out +} + func Dedup[T comparable](slice []T) []T { keys := make(map[T]struct{}) out := make([]T, 0, len(slice))