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.