package pipeline func Pipe[In any, Out any](in <-chan In, pipe func(In) Out) <-chan Out { out := make(chan Out) go func() { for n := range in { out <- pipe(n) } close(out) }() return out }