blockreader.go 545 B

1234567891011121314151617181920212223
  1. package reader
  2. import (
  3. "io"
  4. "path/filepath"
  5. "git.wecise.com/wecise/util/merrs"
  6. )
  7. type BlockReader interface {
  8. ReadBlock() (block map[string]any, line string, linecount int, err error)
  9. }
  10. func NewBlockReader(filename string, reader io.Reader) (BlockReader, error) {
  11. filetype := filepath.Ext(filename)
  12. switch filetype {
  13. case ".csv":
  14. return NewCSVBlockReader(filename, reader), nil
  15. case ".txt":
  16. return NewTXTBlockReader(filename, reader), nil
  17. }
  18. return nil, merrs.UnsupportedError.NewError("unsupported data format " + filetype)
  19. }