Skip to content

Commit 76f5190

Browse files
committed
change grouping functions signatures
1 parent 6520923 commit 76f5190

File tree

1 file changed

+15
-30
lines changed

1 file changed

+15
-30
lines changed

funcs_grouping.go

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@ import (
55
"iter"
66
)
77

8-
type Combined[T1, T2 any] struct {
9-
First T1
10-
Second T2
8+
type Joined[T1, T2 any] struct {
9+
Outer T1
10+
Inner T2
1111
}
1212

1313
func Join[OuterT, InnerT any, K comparable](
1414
outer Iterable[OuterT],
1515
inner Iterable[InnerT],
1616
outerKeySelector func(OuterT) K,
1717
innerKeySelector func(InnerT) K,
18-
) Enumerable[*Combined[OuterT, InnerT]] {
19-
seq := func(yield func(*Combined[OuterT, InnerT]) bool) {
18+
) Enumerable[*Joined[OuterT, InnerT]] {
19+
seq := func(yield func(*Joined[OuterT, InnerT]) bool) {
2020
next, stop := iter.Pull(outer.Iter())
2121
defer stop()
2222
outerElem, ok := next()
@@ -29,9 +29,9 @@ func Join[OuterT, InnerT any, K comparable](
2929
innerElems, hasAny := group[outerKeySelector(outerElem)]
3030
if hasAny {
3131
for _, innerElem := range innerElems {
32-
combined := &Combined[OuterT, InnerT]{
33-
First: outerElem,
34-
Second: innerElem,
32+
combined := &Joined[OuterT, InnerT]{
33+
Outer: outerElem,
34+
Inner: innerElem,
3535
}
3636
if !yield(combined) {
3737
return
@@ -52,8 +52,8 @@ func JoinAs[OuterT, InnerT any, K comparable, ResultT any](
5252
transformer func(OuterT, InnerT) ResultT,
5353
) Enumerable[ResultT] {
5454
joinedSeq := Join(outer, inner, outerKeySelector, innerKeySelector).Iter()
55-
transformedSeq := goiter.Transform(joinedSeq, func(combined *Combined[OuterT, InnerT]) ResultT {
56-
return transformer(combined.First, combined.Second)
55+
transformedSeq := goiter.Transform(joinedSeq, func(combined *Joined[OuterT, InnerT]) ResultT {
56+
return transformer(combined.Outer, combined.Inner)
5757
})
5858

5959
return NewEnumerator(transformedSeq)
@@ -64,8 +64,8 @@ func GroupJoin[OuterT, InnerT any, K comparable](
6464
inner Iterable[InnerT],
6565
outerKeySelector func(OuterT) K,
6666
innerKeySelector func(InnerT) K,
67-
) Enumerable[*Combined[OuterT, Enumerable[InnerT]]] {
68-
seq := func(yield func(*Combined[OuterT, Enumerable[InnerT]]) bool) {
67+
) Enumerable[*Joined[OuterT, Enumerable[InnerT]]] {
68+
seq := func(yield func(joined *Joined[OuterT, Enumerable[InnerT]]) bool) {
6969
next, stop := iter.Pull(outer.Iter())
7070
defer stop()
7171
outerElem, ok := next()
@@ -77,9 +77,9 @@ func GroupJoin[OuterT, InnerT any, K comparable](
7777
for ok {
7878
innerElems, hasAny := group[outerKeySelector(outerElem)]
7979
if hasAny {
80-
combined := &Combined[OuterT, Enumerable[InnerT]]{
81-
First: outerElem,
82-
Second: NewEnumerator(goiter.SliceElem(innerElems)),
80+
combined := &Joined[OuterT, Enumerable[InnerT]]{
81+
Outer: outerElem,
82+
Inner: NewEnumerator(goiter.SliceElem(innerElems)),
8383
}
8484
if !yield(combined) {
8585
return
@@ -91,21 +91,6 @@ func GroupJoin[OuterT, InnerT any, K comparable](
9191
return NewEnumerator(seq)
9292
}
9393

94-
func GroupJoinAs[OuterT, InnerT any, K comparable, ResultT any](
95-
outer Iterable[OuterT],
96-
inner Iterable[InnerT],
97-
outerKeySelector func(OuterT) K,
98-
innerKeySelector func(InnerT) K,
99-
transformer func(OuterT, Enumerable[InnerT]) ResultT,
100-
) Enumerable[ResultT] {
101-
joinedSeq := GroupJoin(outer, inner, outerKeySelector, innerKeySelector).Iter()
102-
transformedSeq := goiter.Transform(joinedSeq, func(combined *Combined[OuterT, Enumerable[InnerT]]) ResultT {
103-
return transformer(combined.First, combined.Second)
104-
})
105-
106-
return NewEnumerator(transformedSeq)
107-
}
108-
10994
func groupIterableToMap[T any, K comparable](iterable Iterable[T], keySelector func(T) K) map[any][]T {
11095
m := map[any][]T{}
11196
next, stop := iter.Pull(iterable.Iter())

0 commit comments

Comments
 (0)