package interfaces import "context" type Input interface { Start(context.Context, chan<- Row, chan<- error) error Close() } type Pipe interface { Start(Row) (Row, error) Next() []Pipe Close() } type Output interface { Start(context.Context, <-chan Row, chan<- error) error Close() } type Row interface { Bytes() ([]byte, error) }