miller/go/src/input/record_reader.go
2021-02-14 01:13:24 -05:00

20 lines
565 B
Go

package input
import (
"miller/src/types"
)
// Since Go is concurrent, the context struct (AWK-like variables such as
// FILENAME, NF, NF, FNR, etc.) needs to be duplicated and passed through the
// channels along with each record. Hence the initial context, which readers
// update on each new file/record, and the channel of types.RecordAndContext
// rather than channel of types.Mlrmap.
type IRecordReader interface {
Read(
filenames []string,
initialContext types.Context,
inputChannel chan<- *types.RecordAndContext,
errorChannel chan error,
)
}