refactor: move itertools
This commit is contained in:
parent
22cfa9bd0d
commit
942f9cc0a8
5 changed files with 29 additions and 6 deletions
|
|
@ -7,7 +7,7 @@ import (
|
|||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/ayn2op/go-itertools"
|
||||
"github.com/ayn2op/discordo/pkg/itertools"
|
||||
"github.com/diamondburned/arikawa/v3/discord"
|
||||
"github.com/diamondburned/arikawa/v3/gateway"
|
||||
"github.com/gdamore/tcell/v2"
|
||||
|
|
|
|||
1
go.mod
1
go.mod
|
|
@ -5,7 +5,6 @@ go 1.23.0
|
|||
require (
|
||||
github.com/BurntSushi/toml v1.4.0
|
||||
github.com/atotto/clipboard v0.1.4
|
||||
github.com/ayn2op/go-itertools v0.0.0-20240820180307-e12e136d577b
|
||||
github.com/diamondburned/arikawa/v3 v3.4.0
|
||||
github.com/gdamore/tcell/v2 v2.7.4
|
||||
github.com/rivo/tview v0.0.0-20240818110301-fd649dbf1223
|
||||
|
|
|
|||
4
go.sum
4
go.sum
|
|
@ -4,8 +4,6 @@ github.com/alessio/shellescape v1.4.2 h1:MHPfaU+ddJ0/bYWpgIeUnQUqKrlJ1S7BfEYPM4u
|
|||
github.com/alessio/shellescape v1.4.2/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30=
|
||||
github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
|
||||
github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
|
||||
github.com/ayn2op/go-itertools v0.0.0-20240820180307-e12e136d577b h1:TPJYmEtguvPOZLqxxV2c4gm9yyDfjS2mPxFW1YeXNFE=
|
||||
github.com/ayn2op/go-itertools v0.0.0-20240820180307-e12e136d577b/go.mod h1:uYHKkErkb+ZyQKE4OjqqVpx9/MskFvTem7JhJk/86To=
|
||||
github.com/danieljoos/wincred v1.2.2 h1:774zMFJrqaeYCK2W57BgAem/MLi6mtSE47MB6BOJ0i0=
|
||||
github.com/danieljoos/wincred v1.2.2/go.mod h1:w7w4Utbrz8lqeMbDAK0lkNJUv5sAOkFi7nd/ogr0Uh8=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
|
|
@ -30,8 +28,6 @@ github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6T
|
|||
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/rivo/tview v0.0.0-20240807205129-e4c497cc59ed h1:bd91xrd1ECzkEJ4XttUJEiyyGBHQdaOmXVEffJbAm6M=
|
||||
github.com/rivo/tview v0.0.0-20240807205129-e4c497cc59ed/go.mod h1:02iFIz7K/A9jGCvrizLPvoqr4cEIx7q54RH5Qudkrss=
|
||||
github.com/rivo/tview v0.0.0-20240818110301-fd649dbf1223 h1:N+DggyldbUDqFlk0b8JeRjB9zGpmQ8wiKpq+VBbzRso=
|
||||
github.com/rivo/tview v0.0.0-20240818110301-fd649dbf1223/go.mod h1:02iFIz7K/A9jGCvrizLPvoqr4cEIx7q54RH5Qudkrss=
|
||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
|
|
|
|||
15
pkg/itertools/filter.go
Normal file
15
pkg/itertools/filter.go
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
package itertools
|
||||
|
||||
import "iter"
|
||||
|
||||
func Filter[I any](in iter.Seq[I], predicate func(I) bool) iter.Seq[I] {
|
||||
return func(yield func(I) bool) {
|
||||
for i := range in {
|
||||
if predicate(i) {
|
||||
if !yield(i) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
13
pkg/itertools/map.go
Normal file
13
pkg/itertools/map.go
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
package itertools
|
||||
|
||||
import "iter"
|
||||
|
||||
func Map[I, O any](in iter.Seq[I], f func(I) O) iter.Seq[O] {
|
||||
return func(yield func(O) bool) {
|
||||
for i := range in {
|
||||
if !yield(f(i)) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue