31 lines
603 B
Go
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
|
|
}
|