wisski-cloud-distillery/internal/fsx/open.go
2022-09-11 12:47:00 +02:00

31 lines
603 B
Go

package fsx
import "io/fs"
// OpenFS opens the named file in filesystem.
// If opening the file results in an error, returns [ErrFile].
func OpenFS(name string, fsys fs.FS) fs.File {
file, err := fsys.Open(name)
if err != nil {
return ErrFile{Err: err}
}
return file
}
// ErrFile implements a no-op [fs.File].
//
// Every operation will return an underlying error
type ErrFile struct {
Err error
}
func (err ErrFile) Stat() (fs.FileInfo, error) {
return nil, err.Err
}
func (err ErrFile) Read([]byte) (int, error) {
return 0, err.Err
}
func (err ErrFile) Close() error {
return err.Err
}