-
Notifications
You must be signed in to change notification settings - Fork 47
/
derived.gen.go
69 lines (63 loc) · 1.29 KB
/
derived.gen.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
63
64
65
66
67
68
69
// Code generated by goderive DO NOT EDIT.
package max
// deriveCompare returns:
// * 0 if this and that are equal,
// * -1 is this is smaller and
// * +1 is this is bigger.
func deriveCompare(this, that boat) int {
return deriveCompare_(&this, &that)
}
// deriveMax returns the maximum of the two input values.
func deriveMax(a, b int) int {
if a > b {
return a
}
return b
}
// deriveMaxs returns the maximum value from the input list and the default value, if the list is empty.
func deriveMaxs(list []boat, def boat) boat {
if len(list) == 0 {
return def
}
m := list[0]
list = list[1:]
for i, v := range list {
if deriveCompare(v, m) > 0 {
m = list[i]
}
}
return m
}
// deriveCompare_ returns:
// * 0 if this and that are equal,
// * -1 is this is smaller and
// * +1 is this is bigger.
func deriveCompare_(this, that *boat) int {
if this == nil {
if that == nil {
return 0
}
return -1
}
if that == nil {
return 1
}
if c := deriveCompare_i(this.length, that.length); c != 0 {
return c
}
return 0
}
// deriveCompare_i returns:
// * 0 if this and that are equal,
// * -1 is this is smaller and
// * +1 is this is bigger.
func deriveCompare_i(this, that int) int {
if this != that {
if this < that {
return -1
} else {
return 1
}
}
return 0
}