1package datasource23// NewRecordIterator returns an iterator for a list of records.4// The iterator never returns an error and it doesn't modify the slice.5func NewRecordIterator(records []Record) Iterator {6 return &recordIterator{records: records}7}89type recordIterator struct {10 records []Record11 current Record12}1314func (it *recordIterator) Err() error { return nil }15func (it *recordIterator) Record() Record { return it.current }1617func (it *recordIterator) Next() bool {18 if len(it.records) == 0 {19 return false20 }2122 it.current, it.records = it.records[0], it.records[1:]23 return true24}25Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.