stream.go
func ForEach(filter Filter, fn func(s string)) error {
	in := make(chan string)
	close(in)
	out := make(chan string, channelBuffer)
	e := &filterErrors{}
	go runFilter(filter, Arg{In: in, Out: out}, e)
	for s := range out {
		fn(s)
	}
	return e.getError()
}
func ForEach(filter Filter, fn func(s string)) error {
	in := make(chan string)
	close(in)
	out := make(chan string, channelBuffer)
	e := &filterErrors{}
	go runFilter(filter, Arg{In: in, Out: out}, e)
	for s := range out {
		fn(s)
	}
	return e.getError()
}
func ForEach ( filter Filter , fn func ( s string ) ) error { in := make ( chan string ) close ( in ) out := make ( chan string , channelBuffer ) e := & filterErrors { } go runFilter ( filter , Arg { In : in , Out : out } , e ) for s := range out { fn ( s ) } return e . getError ( ) }
// ForEach calls fn(s) for every item s in the output of filter and
// returns either nil, or any error reported by the execution of the filter.
ForEach calls fn ( s ) for every item s in the output of filter and returns either nil or any error reported by the execution of the filter .