package vfs import ( "context" "io/fs" "path" ) var _ File = &dirFile{} func newDirFile(name string) File { return &dirFile{ name: path.Base(name), } } type dirFile struct { name string } // Close implements File. func (d *dirFile) Close(ctx context.Context) error { return nil } // Info implements File. func (d *dirFile) Info() (fs.FileInfo, error) { return newDirInfo(d.name), nil } // IsDir implements File. func (d *dirFile) IsDir() bool { return true } // Name implements File. func (d *dirFile) Name() string { return d.name } // Read implements File. func (d *dirFile) Read(ctx context.Context, p []byte) (n int, err error) { return 0, fs.ErrInvalid } // ReadAt implements File. func (d *dirFile) ReadAt(ctx context.Context, p []byte, off int64) (n int, err error) { return 0, fs.ErrInvalid } // Size implements File. func (d *dirFile) Size() int64 { return 0 } // Type implements File. func (d *dirFile) Type() fs.FileMode { return roMode | fs.ModeDir }