File tree 1 file changed +9
-6
lines changed 1 file changed +9
-6
lines changed Original file line number Diff line number Diff line change 1
1
package dbgen
2
2
3
- import "net"
3
+ import (
4
+ "net"
5
+ )
4
6
5
7
func takeFirstIP (values ... net.IPNet ) net.IPNet {
6
- takeFirstSlice ([]string {})
7
-
8
8
return takeFirstF (values , func (v net.IPNet ) bool {
9
9
return len (v .IP ) != 0 && len (v .Mask ) != 0
10
10
})
@@ -14,19 +14,22 @@ func takeFirstIP(values ...net.IPNet) net.IPNet {
14
14
// []any is not a comparable type.
15
15
func takeFirstSlice [T any ](values ... []T ) []T {
16
16
return takeFirstF (values , func (v []T ) bool {
17
- return len (v ) != 0
17
+ return v != nil && len (v ) != 0
18
18
})
19
19
}
20
20
21
21
// takeFirstF takes the first value that returns true
22
22
func takeFirstF [Value any ](values []Value , take func (v Value ) bool ) Value {
23
- var empty Value
24
23
for _ , v := range values {
25
24
if take (v ) {
26
25
return v
27
26
}
28
27
}
29
- // If all empty, return empty
28
+ // If all empty, return the last element
29
+ if len (values ) > 0 {
30
+ return values [len (values )- 1 ]
31
+ }
32
+ var empty Value
30
33
return empty
31
34
}
32
35
You can’t perform that action at this time.
0 commit comments