portald/warp/pipe.go

27 lines
371 B
Go

package warp
import "io"
func RF2W(f func(io.Reader) error) io.Writer {
r, w := io.Pipe()
go func() {
err := f(r)
if err == nil {
err = io.EOF
}
r.CloseWithError(err)
}()
return w
}
func WF2R(f func(io.Writer) error) io.Reader {
r, w := io.Pipe()
go func() {
err := f(w)
if err == nil {
err = io.EOF
}
w.CloseWithError(err)
}()
return r
}