Browse code

internal/sliceutil: add Deref utility

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

Sebastiaan van Stijn authored on 2025/11/06 19:33:08
Showing 1 changed files
... ...
@@ -1,5 +1,18 @@
1 1
 package sliceutil
2 2
 
3
+func Deref[T any](slice []*T) []T {
4
+	if slice == nil {
5
+		return nil
6
+	}
7
+	out := make([]T, 0, len(slice))
8
+	for _, p := range slice {
9
+		if p != nil {
10
+			out = append(out, *p)
11
+		}
12
+	}
13
+	return out
14
+}
15
+
3 16
 func Dedup[T comparable](slice []T) []T {
4 17
 	keys := make(map[T]struct{})
5 18
 	out := make([]T, 0, len(slice))