Documentation
¶
Overview ¶
Example ¶
package main import ( "context" "fmt" "iter" "strconv" "github.com/yyyoichi/piter" ) func main() { ctx := context.Background() twice := func(i int) int { return i * 2 } var src iter.Seq[int] = func(yield func(int) bool) { _ = yield(2) _ = yield(3) _ = yield(4) } d1 := piter.Iter11(ctx, src, twice) d2 := piter.Pipeline11(ctx, d1, twice) d3 := piter.FunOut11(ctx, d2, twice) for d := range d3 { fmt.Println(d) } var strSrc iter.Seq[string] = func(yield func(string) bool) { _ = yield("a") _ = yield("2") _ = yield("4") } var ns = make([]int, 0, 3) for n, err := range piter.Pipeline12(ctx, strSrc, strconv.Atoi) { if err != nil { break } ns = append(ns, n) } for _, n := range ns { // Expect no output fmt.Println(n) } }
Output: 16 24 32
Index ¶
- func FunIn[T any](cxt context.Context, channels ...chan T) <-chan T
- func FunOut[I, O any](ctx context.Context, src <-chan I, fn func(I) O) <-chan O
- func FunOut11[I, O any](ctx context.Context, src iter.Seq[I], fn func(I) O) iter.Seq[O]
- func FunOut12[I, O any](ctx context.Context, src iter.Seq[I], fn func(I) (O, error)) iter.Seq2[O, error]
- func FunOut22[I, O any](ctx context.Context, src iter.Seq2[I, error], fn func(I) (O, error)) iter.Seq2[O, error]
- func Iter11[I, O any](ctx context.Context, src iter.Seq[I], fn func(I) O) iter.Seq[O]
- func Iter12[I, O any](ctx context.Context, src iter.Seq[I], fn func(I) (O, error)) iter.Seq2[O, error]
- func Iter22[I, O any](ctx context.Context, src iter.Seq2[I, error], fn func(I) (O, error)) iter.Seq2[O, error]
- func Pipeline11[I, O any](ctx context.Context, src iter.Seq[I], fn func(I) O) iter.Seq[O]
- func Pipeline12[I, O any](ctx context.Context, src iter.Seq[I], fn func(I) (O, error)) iter.Seq2[O, error]
- func Pipeline22[I, O any](ctx context.Context, src iter.Seq2[I, error], fn func(I) (O, error)) iter.Seq2[O, error]
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FunOut11 ¶
Example ¶
package main import ( "context" "fmt" "iter" "strconv" "github.com/yyyoichi/piter" ) func main() { ctx := context.Background() src := toIter(1, 2, 3) dist := piter.Iter11(ctx, src, func(i int) string { return strconv.Itoa(i*10) + "kg" }) for d := range dist { fmt.Println(d) } } func toIter[T any](src ...T) iter.Seq[T] { return func(yield func(T) bool) { for _, s := range src { _ = yield(s) } } }
Output: 10kg 20kg 30kg
func FunOut12 ¶
func FunOut12[I, O any](ctx context.Context, src iter.Seq[I], fn func(I) (O, error)) iter.Seq2[O, error]
Example ¶
ctx := context.Background() src := toIter("10", "20kg", "30") dist := piter.Pipeline12(ctx, src, func(i string) (int, error) { return strconv.Atoi(i) }) for d, err := range dist { if err != nil { fmt.Println("err") } else { fmt.Println(d) } }
Output: 10 err 30
func FunOut22 ¶
func FunOut22[I, O any](ctx context.Context, src iter.Seq2[I, error], fn func(I) (O, error)) iter.Seq2[O, error]
Example ¶
package main import ( "context" "fmt" "iter" "strconv" "github.com/yyyoichi/piter" ) func main() { ctx := context.Background() src := toIter2("10", "20kg", "30") dist := piter.Iter22(ctx, src, func(i string) (int, error) { return strconv.Atoi(i) }) for d, err := range dist { if err != nil { fmt.Println("err") } else { fmt.Println(d) } } } func toIter2[T any](src ...T) iter.Seq2[T, error] { return func(yield func(T, error) bool) { for _, s := range src { _ = yield(s, nil) } } }
Output: 10 err 30
func Iter11 ¶
Example ¶
package main import ( "context" "fmt" "iter" "strconv" "github.com/yyyoichi/piter" ) func main() { ctx := context.Background() src := toIter(1, 2, 3) dist := piter.Iter11(ctx, src, func(i int) string { return strconv.Itoa(i*10) + "kg" }) for d := range dist { fmt.Println(d) } } func toIter[T any](src ...T) iter.Seq[T] { return func(yield func(T) bool) { for _, s := range src { _ = yield(s) } } }
Output: 10kg 20kg 30kg
func Iter12 ¶
func Iter12[I, O any](ctx context.Context, src iter.Seq[I], fn func(I) (O, error)) iter.Seq2[O, error]
Example ¶
ctx := context.Background() src := toIter("10", "20kg", "30") dist := piter.Iter12(ctx, src, func(i string) (int, error) { return strconv.Atoi(i) }) for d, err := range dist { if err != nil { fmt.Println("err") } else { fmt.Println(d) } }
Output: 10 err 30
func Iter22 ¶
func Iter22[I, O any](ctx context.Context, src iter.Seq2[I, error], fn func(I) (O, error)) iter.Seq2[O, error]
Example ¶
package main import ( "context" "fmt" "iter" "strconv" "github.com/yyyoichi/piter" ) func main() { ctx := context.Background() src := toIter2("10", "20kg", "30") dist := piter.Iter22(ctx, src, func(i string) (int, error) { return strconv.Atoi(i) }) for d, err := range dist { if err != nil { fmt.Println("err") } else { fmt.Println(d) } } } func toIter2[T any](src ...T) iter.Seq2[T, error] { return func(yield func(T, error) bool) { for _, s := range src { _ = yield(s, nil) } } }
Output: 10 err 30
func Pipeline11 ¶
Example ¶
package main import ( "context" "fmt" "iter" "strconv" "github.com/yyyoichi/piter" ) func main() { ctx := context.Background() src := toIter(1, 2, 3) dist := piter.Pipeline11(ctx, src, func(i int) string { return strconv.Itoa(i*10) + "kg" }) for d := range dist { fmt.Println(d) } } func toIter[T any](src ...T) iter.Seq[T] { return func(yield func(T) bool) { for _, s := range src { _ = yield(s) } } }
Output: 10kg 20kg 30kg
func Pipeline12 ¶
func Pipeline12[I, O any](ctx context.Context, src iter.Seq[I], fn func(I) (O, error)) iter.Seq2[O, error]
Example ¶
ctx := context.Background() src := toIter("10", "20kg", "30") dist := piter.Pipeline12(ctx, src, func(i string) (int, error) { return strconv.Atoi(i) }) for d, err := range dist { if err != nil { fmt.Println("err") } else { fmt.Println(d) } }
Output: 10 err 30
func Pipeline22 ¶
func Pipeline22[I, O any](ctx context.Context, src iter.Seq2[I, error], fn func(I) (O, error)) iter.Seq2[O, error]
Example ¶
package main import ( "context" "fmt" "iter" "strconv" "github.com/yyyoichi/piter" ) func main() { ctx := context.Background() src := toIter2("10", "20kg", "30") dist := piter.Iter22(ctx, src, func(i string) (int, error) { return strconv.Atoi(i) }) for d, err := range dist { if err != nil { fmt.Println("err") } else { fmt.Println(d) } } } func toIter2[T any](src ...T) iter.Seq2[T, error] { return func(yield func(T, error) bool) { for _, s := range src { _ = yield(s, nil) } } }
Output: 10 err 30
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.