func NewFileReadSeeker(path string, buffsize int) ReadSeeker {
	return &fileSeeker{
		f:           nil,
		path:        path,
		buffSize:    buffsize,
		seekOffset:  0,
		initialized: false,
	}
}
NewFileReadSeeker wraps a buffered file reader with Seeking functionality.
Notice that Seek calls un-set the reader and require Initialize calls. This
is to avoid potentially unnecessary disk IO.
package reader
import (
	"bufio"
	"bytes"
	"errors"
	"fmt"
	"io"
	"os"
	"sync"
	"github.com/klauspost/compress/zstd"
	"github.com/mostynb/zstdpool-syncpool"
)
type Initializable interface {
	IsInitialized() bool
	Initialize() error
}
type ReadSeeker interface {
	io.Reader
	io.Closer
	Initializable
	SeekOffset(offset int64) error
}
type fileSeeker struct {
	reader *bufio.Reader
	f           *os.File
	path        string
	buffSize    int
	seekOffset  int64
	initialized bool
}