Skip to content

Commit c1ba449

Browse files
committed
rename From to InSlice and Slice to ToSlice
this is a breaking change but improves consistency, I guess. It also paves the road for functions taking in a map and providing a pairs iterator over the key value pairs.
1 parent aa2c9ff commit c1ba449

15 files changed

+33
-34
lines changed

Diff for: README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ func main() {
2727
s := []int{1, 2, 3}
2828

2929
// iterating using the for keyword.
30-
for it := itkit.From(s); it.Next(); {
30+
for it := itkit.InSlice(s); it.Next(); {
3131
fmt.Println(it.Value())
3232
}
3333

3434
// iterating using a slightly more functional approach.
35-
itkit.Apply(itkit.From(s), func(v int) {
35+
itkit.Apply(itkit.InSlice(s), func(v int) {
3636
fmt.Println(v)
3737
})
3838
}

Diff for: _example/simple/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ func main() {
1010
s := []int{1, 2, 3}
1111

1212
// iterating using the for keyword.
13-
for it := itkit.From(s); it.Next(); {
13+
for it := itkit.InSlice(s); it.Next(); {
1414
fmt.Println(it.Value())
1515
}
1616

1717
// iterating using a slightly more functional approach.
18-
itkit.Apply(itkit.From(s), func(v int) {
18+
itkit.Apply(itkit.InSlice(s), func(v int) {
1919
fmt.Println(v)
2020
})
2121
}

Diff for: chain.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@ func ChainI[T any](iters Iterator[Iterator[T]]) Iterator[T] {
5151

5252
// ChainV is the variadic version of ChainI.
5353
func ChainV[T any](iters ...Iterator[T]) Iterator[T] {
54-
return ChainI(From(iters))
54+
return ChainI(InSlice(iters))
5555
}

Diff for: chain_test.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -35,33 +35,33 @@ func TestChain(t *testing.T) {
3535
{"empty", args{[]itkit.Iterator[int]{itkit.Empty[int]()}}, []int(nil)},
3636

3737
{"one", args{[]itkit.Iterator[int]{
38-
itkit.From([]int{1, 2, 3}),
38+
itkit.InSlice([]int{1, 2, 3}),
3939
}}, []int{1, 2, 3}},
4040

4141
{"two", args{[]itkit.Iterator[int]{
42-
itkit.From([]int{1, 2, 3}),
43-
itkit.From([]int{7, 8, 9}),
42+
itkit.InSlice([]int{1, 2, 3}),
43+
itkit.InSlice([]int{7, 8, 9}),
4444
}}, []int{1, 2, 3, 7, 8, 9}},
4545

4646
{"empty mixed-start", args{[]itkit.Iterator[int]{
4747
itkit.Empty[int](),
48-
itkit.From([]int{1, 2, 3}),
49-
itkit.From([]int{7, 8, 9}),
48+
itkit.InSlice([]int{1, 2, 3}),
49+
itkit.InSlice([]int{7, 8, 9}),
5050
}}, []int{1, 2, 3, 7, 8, 9}},
5151
{"empty mixed-middle", args{[]itkit.Iterator[int]{
52-
itkit.From([]int{1, 2, 3}),
52+
itkit.InSlice([]int{1, 2, 3}),
5353
itkit.Empty[int](),
54-
itkit.From([]int{7, 8, 9}),
54+
itkit.InSlice([]int{7, 8, 9}),
5555
}}, []int{1, 2, 3, 7, 8, 9}},
5656
{"empty mixed-end", args{[]itkit.Iterator[int]{
57-
itkit.From([]int{1, 2, 3}),
58-
itkit.From([]int{7, 8, 9}),
57+
itkit.InSlice([]int{1, 2, 3}),
58+
itkit.InSlice([]int{7, 8, 9}),
5959
itkit.Empty[int](),
6060
}}, []int{1, 2, 3, 7, 8, 9}},
6161
}
6262
for _, test := range tests {
6363
t.Run(test.name, func(t *testing.T) {
64-
got := itkit.Slice(itkit.ChainV(test.args.iters...))
64+
got := itkit.ToSlice(itkit.ChainV(test.args.iters...))
6565
assertpkg.Equal(t, test.wanted, got)
6666
})
6767
}

Diff for: channel_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ func TestChannel(t *testing.T) {
2929
}
3030
close(ch)
3131

32-
s := itkit.Slice(itkit.Channel(ch))
32+
s := itkit.ToSlice(itkit.Channel(ch))
3333
assertpkg.Equal(t, []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, s)
3434
}

Diff for: filter_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
func TestFilter(t *testing.T) {
2626
t.Run("FilterRange", func(t *testing.T) {
2727
assert := assertpkg.New(t)
28-
s := itkit.Slice(itkit.Filter(itkit.Range(10), func(i int) bool { return i%2 == 0 }))
28+
s := itkit.ToSlice(itkit.Filter(itkit.Range(10), func(i int) bool { return i%2 == 0 }))
2929
assert.Equal([]int{0, 2, 4, 6, 8}, s)
3030
})
3131

Diff for: find_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func TestFind(t *testing.T) {
3939
t.Run(tc.name, func(t *testing.T) {
4040
assert := assertpkg.New(t)
4141

42-
it := itkit.From([]int{1, 2, 3, 4, 5})
42+
it := itkit.InSlice([]int{1, 2, 3, 4, 5})
4343

4444
gotOut, gotOk := itkit.Find(it, compareFn, tc.needle)
4545
assert.Equal(tc.wantOk, gotOk)

Diff for: generator_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828
func TestGenerator(t *testing.T) {
2929
defer goleak.VerifyNone(t)
3030

31-
s := itkit.Slice(itkit.Generator(func(g *itkit.G[int]) {
31+
s := itkit.ToSlice(itkit.Generator(func(g *itkit.G[int]) {
3232
for i := 1; i < 5; i++ {
3333
g.Send(i)
3434
}

Diff for: map_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ import (
2424

2525
func TestMap(t *testing.T) {
2626
assert := assertpkg.New(t)
27-
s := itkit.Slice(itkit.Map(itkit.Runes("Hello World!"), func(r rune) string { return string(r) }))
27+
s := itkit.ToSlice(itkit.Map(itkit.Runes("Hello World!"), func(r rune) string { return string(r) }))
2828
assert.Equal([]string{"H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d", "!"}, s)
2929
}

Diff for: maps_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func TestKeys_String(t *testing.T) {
3737
}
3838
for _, tt := range tests {
3939
t.Run(tt.name, func(t *testing.T) {
40-
got := itkit.Slice(itkit.Keys(tt.given).Iter())
40+
got := itkit.ToSlice(itkit.Keys(tt.given).Iter())
4141
sort.Strings(got)
4242
assertpkg.Equalf(t, tt.wanted, got, "Keys(%v)", tt.given)
4343
})

Diff for: range_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func TestRange(t *testing.T) {
3535
return itkit.Range(10)
3636
}}, []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}},
3737

38-
{"From", args{fn: func() itkit.Iterator[int] {
38+
{"InSlice", args{fn: func() itkit.Iterator[int] {
3939
return itkit.RangeFrom(5, 10)
4040
}}, []int{5, 6, 7, 8, 9}},
4141
{"WithStep", args{fn: func() itkit.Iterator[int] {
@@ -52,7 +52,7 @@ func TestRange(t *testing.T) {
5252
for _, tc := range tt {
5353
t.Run(tc.name, func(t *testing.T) {
5454
assert := assertpkg.New(t)
55-
assert.Equal(itkit.Slice(tc.args.fn()), tc.want)
55+
assert.Equal(itkit.ToSlice(tc.args.fn()), tc.want)
5656
})
5757
}
5858
}

Diff for: slice.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,13 @@ func (it *SliceIterator[T]) Value() T {
3939
return *it.current
4040
}
4141

42-
// From returns an iterator yielding items from the given slice.
43-
func From[T any](s []T) Iterator[T] {
42+
// InSlice returns an [Iterator] yielding items in the given slice.
43+
func InSlice[T any](s []T) Iterator[T] {
4444
return &SliceIterator[T]{Data: s}
4545
}
4646

47-
// Slice consumes the iterator iterkit.Iterator returning its
48-
// elements as a Go slice.
49-
func Slice[T any](it Iterator[T]) (out []T) {
47+
// ToSlice consumes the [Iterator] returning its elements as a Go slice.
48+
func ToSlice[T any](it Iterator[T]) (out []T) {
5049
for it.Next() {
5150
out = append(out, it.Value())
5251
}

Diff for: slice_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ import (
2525
func TestSlice(t *testing.T) {
2626
assert := assertpkg.New(t)
2727

28-
s := itkit.Slice(itkit.Range(10))
28+
s := itkit.ToSlice(itkit.Range(10))
2929
assert.Equal([]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, s)
3030
}
3131

3232
func TestSliceIterator(t *testing.T) {
33-
it := itkit.From([]int{1, 2, 3})
33+
it := itkit.InSlice([]int{1, 2, 3})
3434

3535
var values []int
3636
for it.Next() {

Diff for: string.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,5 @@ func Runes(v string) Iterator[rune] {
6767
// String consumes the given rune iterator and returns the content as
6868
// a string.
6969
func String(it Iterator[rune]) string {
70-
return string(Slice(it))
70+
return string(ToSlice(it))
7171
}

Diff for: string_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,17 @@ import (
2222

2323
func TestString(t *testing.T) {
2424
t.Run("unicode", func(t *testing.T) {
25-
s := Slice(Runes("日本\x80語"))
25+
s := ToSlice(Runes("日本\x80語"))
2626
assert.Equal(t, []rune{0x65E5, 0x672C, 0xFFFD, 0x8A9E}, s)
2727
})
2828

2929
t.Run("ascii", func(t *testing.T) {
30-
s := Slice(Runes("Hello World"))
30+
s := ToSlice(Runes("Hello World"))
3131
assert.Equal(t, []rune{0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64}, s)
3232
})
3333

3434
t.Run("late unicode", func(t *testing.T) {
35-
s := Slice(Runes("Hello Wörld"))
35+
s := ToSlice(Runes("Hello Wörld"))
3636
assert.Equal(t, []rune{0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0xf6, 0x72, 0x6c, 0x64}, s)
3737
})
3838
}

0 commit comments

Comments
 (0)