func (pp *pureParser) GetStats() *Stats {
	size := int64(-1)  
	fi, err := pp.f.Stat()
	if err == nil {
		size = fi.Size()
	}
	pStat := newStats(FmtPure, &fileStats{})
	pStat.FileStats.Size = size
	pStat.FileStats.Pos = pp.GetStreamPos()
	return pStat
}
GetStat returns the parser statistic
package parser
import (
	"context"
	"github.com/logrange/logrange/pkg/scanner/model"
	"io"
	"os"
	"time"
)
type pureParser struct {
	Parser
	fn  string
	f   *os.File
	lr  *lineReader
	pos int64
}
func NewPureParser(fileName string, maxRecSize int) (*pureParser, error) {
	f, err := os.Open(fileName)
	if err != nil {
		return nil, err
	}
	_, err = f.Stat()
	if err != nil {
		return nil, err
	}
	pp := new(pureParser)
	pp.fn = fileName
	pp.f = f
	pp.lr = newLineReader(f, maxRecSize)
	return pp, nil
}
func (pp *pureParser) NextRecord(ctx context.Context) (*model.Record, error) {
	line, err := pp.lr.readLine(ctx)
	if err != nil {
		return nil, err
	}
	pp.pos += int64(len(line))
	return model.NewRecord(line, time.Now()), nil
}
func (pp *pureParser) SetStreamPos(pos int64) error {
	if _, err := pp.f.Seek(pos, io.SeekStart); err != nil {
		return err
	}
	pp.pos = pos
	pp.lr.reset(pp.f)
	return nil
}
func (pp *pureParser) GetStreamPos() int64 {
	return pp.pos
}