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)
}