-
Notifications
You must be signed in to change notification settings - Fork 5
/
list.go
62 lines (51 loc) · 1.32 KB
/
list.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
55
56
57
58
59
60
61
62
package ingress
import kubeModels "github.com/containerum/kube-client/pkg/model"
type IngressList []Ingress
func IngressListFromKube(kubeList []kubeModels.Ingress) IngressList {
var list IngressList = make([]Ingress, 0, len(kubeList))
for _, kubeIngress := range kubeList {
list = append(list, IngressFromKube(kubeIngress))
}
return list
}
func (list IngressList) ToKube() []kubeModels.Ingress {
var kubeList = make([]kubeModels.Ingress, 0, len(list))
for _, ingr := range list {
kubeList = append(kubeList, ingr.ToKube())
}
return kubeList
}
func (list IngressList) Len() int {
return len(list)
}
func (list IngressList) Empty() bool {
return list.Len() == 0
}
func (list IngressList) Head() Ingress {
if list.Empty() {
return Ingress{}
}
return list[0].Copy()
}
func (list IngressList) Copy() IngressList {
var cp IngressList = make([]Ingress, 0, len(list))
for _, ingr := range list {
cp = append(cp, ingr.Copy())
}
return cp
}
func (list IngressList) Append(ing ...Ingress) IngressList {
return append(list.Copy(), ing...)
}
func (list IngressList) Delete(i int) IngressList {
cp := list.Copy()
return append(cp[:i], cp[i+1:]...)
}
func (list IngressList) GetByName(name string) (Ingress, bool) {
for _, ingr := range list {
if name == ingr.Name {
return ingr.Copy(), true
}
}
return Ingress{}, false
}