type FileReader … type fileReader … func NewFileReader(f *os.File) FileReader { … } func (fr *fileReader) FileInfo() (fs.FileInfo, error) { … } type FileBufReader … func NewFileBufReader(fr FileReader) *FileBufReader { … } func (fbr *FileBufReader) FileInfo() fs.FileInfo { … }