-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutil.go
54 lines (47 loc) · 819 Bytes
/
util.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package controllers
import (
"reflect"
"time"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func contains(items []string, x string) bool {
for i := range items {
if items[i] == x {
return true
}
}
return false
}
func keys(dict interface{}) []string {
kvs := reflect.ValueOf(dict).MapKeys()
r := make([]string, len(kvs))
for i := range kvs {
r[i] = kvs[i].String()
}
return r
}
func union(a []string, b []string) []string {
t := make(map[string]struct{}, len(a)+len(b))
for i := range a {
t[a[i]] = struct{}{}
}
for i := range b {
t[b[i]] = struct{}{}
}
return keys(t)
}
func min(a []time.Duration) *time.Duration {
if len(a) == 0 {
return nil
}
m := a[0]
for i := range a {
if a[i] < m {
m = a[i]
}
}
return &m
}
func ptr(t metav1.Time) *metav1.Time {
return &t
}