Skip to content

Commit b63dcaa

Browse files
committed
Allow ternary to operate on any particular type
1 parent 6601e8f commit b63dcaa

4 files changed

Lines changed: 15 additions & 7 deletions

File tree

fixgo/ternary.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
package fixgo
22

3-
import "time"
4-
5-
type TernaryArgument interface {
6-
~int | ~float64 | ~string | time.Time
7-
}
3+
type TernaryArgument interface{}
84

95
func Ternary[V TernaryArgument](c bool, v1, v2 V) V {
106
if c {

fixgo/ternary_test.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@ import (
55
. "github.com/onsi/gomega"
66
)
77

8+
type RandomType struct {
9+
Value int
10+
}
11+
812
var _ = Describe("Ternary", func() {
9-
It("Ternary operates a into", func() {
13+
It("Ternary operates an int", func() {
1014
Expect(Ternary(true, 1, 2)).To(Equal(1))
1115
})
1216
It("Ternary operates a string", func() {
@@ -16,4 +20,10 @@ var _ = Describe("Ternary", func() {
1620
Expect(Ternary(false, "String1", "String2")).To(Equal("String2"))
1721
})
1822

23+
It("Ternary does ternary things to random types", func() {
24+
var result RandomType
25+
result = Ternary(true, RandomType{Value: 1}, RandomType{Value: 2})
26+
Expect(result).To(Equal(RandomType{Value: 1}))
27+
})
28+
1929
})

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/koanhealth/gotools
22

3-
go 1.18
3+
go 1.23
44

55
require (
66
github.com/google/uuid v1.3.0

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
22
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
33
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
4+
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
45
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
56
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
67
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
@@ -21,6 +22,7 @@ golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
2122
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
2223
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
2324
google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=
25+
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
2426
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
2527
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
2628
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

0 commit comments

Comments
 (0)