Skip to content

Commit 5a35fcb

Browse files
committed
Remove FromInterface/FromArrayInterface methods of Stream/StreamSet (reason: using map[key]value, key must be comparable constrants)
1 parent 24a1c26 commit 5a35fcb

File tree

3 files changed

+56
-98
lines changed

3 files changed

+56
-98
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,15 +126,15 @@ fmt.Println(actualInt) // actualInt would be 2
126126

127127
Example:
128128
```go
129-
var s *StreamDef[interface{}]
129+
var s *StreamDef[int]
130130
var tempString = ""
131131

132-
s = StreamFromArray([]interface{}{}).Append(1).Extend(StreamFromInterface(2, 3, 4)).Extend(StreamFromArray([]interface{}{nil}))
132+
s = StreamFromArray([]int{}).Append(1, 1).Extend(StreamFromArray([]int{2, 3, 4}))
133133
tempString = ""
134134
for _, v := range s.ToArray() {
135135
tempString += Maybe.Just(v).ToMaybe().ToString()
136136
}
137-
fmt.Println(tempString) // tempString would be "1234<nil>"
137+
fmt.Println(tempString) // tempString would be "11234"
138138
s = s.Distinct()
139139
tempString = ""
140140
for _, v := range s.ToArray() {

stream.go

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,6 @@ func StreamFromArray[T comparable](list []T) *StreamDef[T] {
2020
return &result
2121
}
2222

23-
// StreamFromInterface New Stream instance from an array
24-
func StreamFromInterface(list ...interface{}) *StreamDef[interface{}] {
25-
return StreamFromArray(list)
26-
}
27-
28-
// StreamFromArrayInterface New Stream instance from an array
29-
func StreamFromArrayInterface(list []interface{}) *StreamDef[interface{}] {
30-
return StreamFromArray(list)
31-
}
32-
3323
// ToArray Convert Stream to slice
3424
func (streamSelf *StreamDef[T]) ToArray() []T {
3525
return DuplicateSlice(*streamSelf)
@@ -287,16 +277,6 @@ func SetFromMap[T comparable, R comparable](theMap map[T]R) *MapSetDef[T, R] {
287277
return &result
288278
}
289279

290-
// SetFromInterface New Set instance from an array
291-
func SetFromInterface(list ...interface{}) *MapSetDef[interface{}, interface{}] {
292-
return SetFromArray[interface{}, interface{}](list)
293-
}
294-
295-
// SetFromArrayInterface New Set instance from an array
296-
func SetFromArrayInterface(list []interface{}) *MapSetDef[interface{}, interface{}] {
297-
return SetFromArray[interface{}, interface{}](list)
298-
}
299-
300280
// MapKey Map all keys of Set by function
301281
func (mapSetSelf *MapSetDef[T, R]) MapKey(fn TransformerFunctor[T, T]) SetDef[T, R] {
302282
result := make(MapSetDef[T, R], len(*mapSetSelf))
@@ -514,16 +494,6 @@ func StreamSetFromMap[T comparable, R comparable](theMap map[T]*StreamDef[R]) *S
514494
return &result
515495
}
516496

517-
// StreamSetFromInterface New StreamSet instance from an array
518-
func StreamSetFromInterface(list ...interface{}) *StreamSetDef[interface{}, interface{}] {
519-
return StreamSetFromArray[interface{}, interface{}](list)
520-
}
521-
522-
// StreamSetFromArrayInterface New StreamSet instance from an array
523-
func StreamSetFromArrayInterface(list []interface{}) *StreamSetDef[interface{}, interface{}] {
524-
return StreamSetFromArray[interface{}, interface{}](list)
525-
}
526-
527497
// Clone Clone this StreamSet
528498
func (streamSetSelf *StreamSetDef[T, R]) Clone() *StreamSetDef[T, R] {
529499
result := StreamSetFromMap(DuplicateMap(streamSetSelf.MapSetDef))

stream_test.go

Lines changed: 53 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ import (
77
)
88

99
func TestFromArrayMapReduce(t *testing.T) {
10-
var s *StreamDef[interface{}]
10+
var s *StreamDef[string]
1111
var tempString string
1212

13-
s = StreamFromInterface(Maybe.Just("1"), Maybe.Just("2"), Maybe.Just("3"), Maybe.Just("4"))
13+
s = StreamFrom("1", "2", "3", "4")
1414
tempString = ""
1515
for _, v := range s.ToArray() {
16-
tempString += Maybe.Just(v).ToMaybe().ToString()
16+
tempString += v
1717
}
1818
assert.Equal(t, "1234", tempString)
19-
s = s.Map(func(item interface{}, index int) interface{} {
20-
var val = Maybe.Just(item).ToMaybe().ToString()
21-
var result interface{} = "v" + val
19+
s = s.Map(func(item string, index int) string {
20+
val := item
21+
result := "v" + val
2222
return result
2323
})
2424
tempString = ""
@@ -44,138 +44,128 @@ func TestFromArrayMapReduce(t *testing.T) {
4444
}
4545
assert.Equal(t, "v1v2v3v4", tempString)
4646

47-
s = StreamFromInterface(1, 2, 3, 4)
47+
s3 := StreamFrom(1, 2, 3, 4)
4848
tempString = ""
49-
for _, v := range s.ToArray() {
49+
for _, v := range s3.ToArray() {
5050
tempString += Maybe.Just(v).ToMaybe().ToString()
5151
}
5252
assert.Equal(t, "1234", tempString)
53-
s = s.Map(func(item interface{}, index int) interface{} {
54-
var val, _ = Maybe.Just(item).ToInt()
55-
var result interface{} = val * val
56-
return result
53+
s3 = s3.Map(func(item int, index int) int {
54+
return item * item
5755
})
5856
tempString = ""
59-
for _, v := range s.ToArray() {
57+
for _, v := range s3.ToArray() {
6058
tempString += Maybe.Just(v).ToMaybe().ToString()
6159
}
6260
assert.Equal(t, "14916", tempString)
6361

64-
s = StreamFromInterface(1, 2, 3, 4)
62+
s3 = StreamFrom(1, 2, 3, 4)
6563
tempString = ""
66-
for _, v := range s.ToArray() {
64+
for _, v := range s3.ToArray() {
6765
tempString += Maybe.Just(v).ToMaybe().ToString()
6866
}
6967
assert.Equal(t, "1234", tempString)
70-
s = s.Map(func(item interface{}, index int) interface{} {
71-
var val, _ = Maybe.Just(item).ToFloat32()
72-
var result interface{} = val * val
73-
return result
68+
s3 = s3.Map(func(item int, index int) int {
69+
return item * item
7470
})
7571
tempString = ""
76-
for _, v := range s.ToArray() {
72+
for _, v := range s3.ToArray() {
7773
tempString += Maybe.Just(v).ToMaybe().ToString()
7874
}
7975
assert.Equal(t, "14916", tempString)
8076

81-
s = StreamFromInterface(1, 2, 3, 4)
77+
s3 = StreamFrom(1, 2, 3, 4)
8278
tempString = ""
83-
for _, v := range s.ToArray() {
79+
for _, v := range s3.ToArray() {
8480
tempString += Maybe.Just(v).ToMaybe().ToString()
8581
}
8682
assert.Equal(t, "1234", tempString)
8783

88-
s = s.Map(func(item interface{}, index int) interface{} {
89-
var val, _ = Maybe.Just(item).ToFloat64()
90-
var result interface{} = val * val
91-
return result
84+
s3 = s3.Map(func(item int, index int) int {
85+
return item * item
9286
})
9387
tempString = ""
94-
for _, v := range s.ToArray() {
88+
for _, v := range s3.ToArray() {
9589
tempString += Maybe.Just(v).ToMaybe().ToString()
9690
}
9791
assert.Equal(t, "14916", tempString)
9892

99-
s = StreamFromInterface(true, false, true, false)
93+
s4 := StreamFrom(true, false, true, false)
10094
tempString = ""
101-
for _, v := range s.ToArray() {
95+
for _, v := range s4.ToArray() {
10296
tempString += Maybe.Just(v).ToMaybe().ToString()
10397
}
10498
assert.Equal(t, "truefalsetruefalse", tempString)
10599

106-
s = StreamFromInterface(1, 2, 3, 4)
100+
s3 = StreamFrom(1, 2, 3, 4)
107101
tempString = ""
108-
for _, v := range s.ToArray() {
102+
for _, v := range s3.ToArray() {
109103
tempString += Maybe.Just(v).ToMaybe().ToString()
110104
}
111105
assert.Equal(t, "1234", tempString)
112106

113-
s = StreamFromInterface(1, 2, 3, 4)
107+
s3 = StreamFrom(1, 2, 3, 4)
114108
tempString = ""
115-
for _, v := range s.ToArray() {
109+
for _, v := range s3.ToArray() {
116110
tempString += Maybe.Just(v).ToMaybe().ToString()
117111
}
118112
assert.Equal(t, "1234", tempString)
119113

120-
s = StreamFromInterface(1, 2, 3, 4)
114+
s3 = StreamFrom(1, 2, 3, 4)
121115
tempString = ""
122-
for _, v := range s.ToArray() {
116+
for _, v := range s3.ToArray() {
123117
tempString += Maybe.Just(v).ToMaybe().ToString()
124118
}
125119
assert.Equal(t, "1234", tempString)
126120

127-
s = StreamFromInterface(1, 2, 3, 4)
121+
s3 = StreamFrom(1, 2, 3, 4)
128122
tempString = ""
129-
for _, v := range s.ToArray() {
123+
for _, v := range s3.ToArray() {
130124
tempString += Maybe.Just(v).ToMaybe().ToString()
131125
}
132126
assert.Equal(t, "1234", tempString)
133127

134-
s = StreamFromInterface(1, 2, 3, 4)
128+
s3 = StreamFrom(1, 2, 3, 4)
135129
tempString = ""
136-
for _, v := range s.ToArray() {
130+
for _, v := range s3.ToArray() {
137131
tempString += Maybe.Just(v).ToMaybe().ToString()
138132
}
139133
assert.Equal(t, "1234", tempString)
140134
}
141135

142136
func TestFilter(t *testing.T) {
143-
var s *StreamDef[interface{}]
137+
var s *StreamDef[int]
144138
var tempString string
145139

146-
s = StreamFromArray([]interface{}{}).Append(1, 1).Extend(StreamFromArray([]interface{}{2, 3, 4})).Extend(StreamFromArray([]interface{}{nil})).Extend(nil)
140+
s = StreamFromArray([]int{}).Append(1, 1).Extend(StreamFromArray([]int{2, 3, 4}))
147141
tempString = ""
148142
for _, v := range s.ToArray() {
149143
tempString += Maybe.Just(v).ToMaybe().ToString()
150144
}
151-
assert.Equal(t, "11234<nil>", tempString)
145+
assert.Equal(t, "11234", tempString)
152146
s = s.Distinct()
153147
tempString = ""
154148
for _, v := range s.ToArray() {
155149
tempString += Maybe.Just(v).ToMaybe().ToString()
156150
}
157-
assert.Equal(t, "1234<nil>", tempString)
151+
assert.Equal(t, "1234", tempString)
158152
s = s.FilterNotNil()
159153
tempString = ""
160154
for _, v := range s.ToArray() {
161155
tempString += Maybe.Just(v).ToMaybe().ToString()
162156
}
163157
assert.Equal(t, "1234", tempString)
164158

165-
s = s.Filter(func(item interface{}, index int) bool {
166-
var val, err = Maybe.Just(item).ToInt()
167-
168-
return err == nil && val > 1 && val < 4
159+
s = s.Filter(func(item int, index int) bool {
160+
return item > 1 && item < 4
169161
})
170162
tempString = ""
171163
for _, v := range s.ToArray() {
172164
tempString += Maybe.Just(v).ToMaybe().ToString()
173165
}
174166
assert.Equal(t, "23", tempString)
175-
s = s.Reject(func(item interface{}, index int) bool {
176-
var val, err = Maybe.Just(item).ToInt()
177-
178-
return err == nil && val > 2
167+
s = s.Reject(func(item int, index int) bool {
168+
return item > 2
179169
})
180170
tempString = ""
181171
for _, v := range s.ToArray() {
@@ -185,17 +175,17 @@ func TestFilter(t *testing.T) {
185175
}
186176

187177
func TestSort(t *testing.T) {
188-
var s *StreamDef[interface{}]
178+
var s *StreamDef[int]
189179
var tempString string
190180

191-
s = StreamFromInterface(11).Extend(StreamFromInterface(2, 3, 4, 5)).Remove(4)
181+
s = StreamFrom(11).Extend(StreamFrom(2, 3, 4, 5)).Remove(4)
192182
tempString = ""
193183
for _, v := range s.ToArray() {
194184
tempString += Maybe.Just(v).ToMaybe().ToString()
195185
}
196186
assert.Equal(t, "11234", tempString)
197187

198-
s = StreamFromInterface(11).Concat([]interface{}{2, 3, 4, 5}).RemoveItem(4)
188+
s = StreamFrom(11).Concat([]int{2, 3, 4, 5}).RemoveItem(4)
199189
tempString = ""
200190
for _, v := range s.ToArray() {
201191
tempString += Maybe.Just(v).ToMaybe().ToString()
@@ -207,7 +197,7 @@ func TestSort(t *testing.T) {
207197
}
208198
assert.Equal(t, "53211", tempString)
209199

210-
s = StreamFromInterface(11).Concat([]interface{}{2, 3, 4, 5}).Remove(4)
200+
s = StreamFrom(11).Concat([]int{2, 3, 4, 5}).Remove(4)
211201
tempString = ""
212202
for _, v := range s.ToArray() {
213203
tempString += Maybe.Just(v).ToMaybe().ToString()
@@ -224,25 +214,23 @@ func TestSort(t *testing.T) {
224214
}
225215
assert.Equal(t, "23411", tempString)
226216
tempString = ""
227-
for _, v := range s.Sort(func(a, b interface{}) bool {
228-
var vali, _ = Maybe.Just(a).ToInt()
229-
var valj, _ = Maybe.Just(b).ToInt()
230-
return vali < valj
217+
for _, v := range s.Sort(func(a, b int) bool {
218+
return a < b
231219
}).ToArray() {
232220
tempString += Maybe.Just(v).ToMaybe().ToString()
233221
}
234222
assert.Equal(t, "23411", tempString)
235223
}
236224

237225
func TestStreamSetOperation(t *testing.T) {
238-
var s *StreamDef[interface{}]
239-
var s2 *StreamDef[interface{}]
240-
var s3 *StreamDef[interface{}]
226+
var s *StreamDef[int]
227+
var s2 *StreamDef[int]
228+
var s3 *StreamDef[int]
241229
var tempString string
242230

243-
s = StreamFromInterface(11, 2, 3, 4, 5)
244-
s2 = StreamFromInterface(9, 2, 5, 6)
245-
s3 = StreamFromInterface(2, 5)
231+
s = StreamFrom(11, 2, 3, 4, 5)
232+
s2 = StreamFrom(9, 2, 5, 6)
233+
s3 = StreamFrom(2, 5)
246234
assert.Equal(t, true, s.Contains(4))
247235
assert.Equal(t, false, s.Contains(6))
248236
assert.Equal(t, true, s.IsSuperset(s3))

0 commit comments

Comments
 (0)