code: func (s *Source) Record() (rec interface{}, err error) {
  	var ok bool
  	select {
  	case rec, ok = <-s.records:
  		if ok {
  			return rec, nil
  		}
  		err, ok = <-s.errors
  		if !ok {
  			return nil, io.EOF
  		}
  		return nil, err
  	case err, ok = <-s.errors:
  		if ok {
  			return nil, err
  		}
  		rec, ok = <-s.records
  		if !ok {
  			return nil, io.EOF
  		}
  		return rec, nil
  	}
  }
docs: // Record parses the next JSON object from the current file in the bucket, or
  // moves to the next file and parses and returns the first json object. A
  // map[string]interface{} will be returned unless there is an error.