fs

package
v0.2.16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 10, 2026 License: MIT Imports: 2 Imported by: 2

Documentation

Overview

This package provides an interface to functions and structs in the standard io/fs package to facilitate mocking.

Index

Constants

This section is empty.

Variables

View Source
var (
	ModeFile = NewFileMode(FSFileMode(0))

	ModeDir        = NewFileMode(fs.ModeDir)
	ModeAppend     = NewFileMode(fs.ModeAppend)
	ModeExclusive  = NewFileMode(fs.ModeExclusive)
	ModeTemporary  = NewFileMode(fs.ModeTemporary)
	ModeSymlink    = NewFileMode(fs.ModeSymlink)
	ModeDevice     = NewFileMode(fs.ModeDevice)
	ModeNamedPipe  = NewFileMode(fs.ModeNamedPipe)
	ModeSocket     = NewFileMode(fs.ModeSocket)
	ModeSetuid     = NewFileMode(fs.ModeSetuid)
	ModeSetgid     = NewFileMode(fs.ModeSetgid)
	ModeCharDevice = NewFileMode(fs.ModeCharDevice)
	ModeSticky     = NewFileMode(fs.ModeSticky)
	ModeIrregular  = NewFileMode(fs.ModeIrregular)

	// ModePerm is really just a bloated int
	ModePerm = fs.ModePerm
)
View Source
var (
	ErrInvalid    = fs.ErrInvalid
	ErrPermission = fs.ErrPermission
	ErrExist      = fs.ErrExist
	ErrNotExist   = fs.ErrNotExist
	ErrClosed     = fs.ErrClosed

	SkipAll = fs.SkipAll
	SkipDir = fs.SkipDir
)

Functions

func NewDirEntry added in v0.1.6

func NewDirEntry(de fs.DirEntry) dirEntryFacade

func NewFileInfo added in v0.2.1

func NewFileInfo(fi fs.FileInfo) fileInfoFacade

func NewFileMode added in v0.1.7

func NewFileMode(fm FSFileMode) fileModeFacade

func NewFileSystem

func NewFileSystem() fileSystemFacade

Types

type DirEntry

type DirEntry interface {
	// Access to members variables:
	Name() string
	IsDir() bool
	Type() FileMode
	Info() (FileInfo, error)

	// Return the underlying direntry instance
	Nub() fs.DirEntry

	Format() string
}

func NewDirEntryList added in v0.2.1

func NewDirEntryList(in []fs.DirEntry) []DirEntry

type FS

type FS = fs.FS

type FSFileMode added in v0.2.1

type FSFileMode = fs.FileMode

FSFileMode is al alias for the io/fs/FileMode type, which is really just an int, so octal values can be used.

type File

type File = fs.File

type FileInfo

type FileInfo interface {
	Name() string
	Size() int64
	Mode() FileMode
	ModTime() time.Time
	IsDir() bool
	Sys() any

	Nub() fs.FileInfo
}

func NewFileInfoList added in v0.2.1

func NewFileInfoList(fil []fs.FileInfo) []FileInfo

type FileMode

type FileMode interface {
	IsRegular() bool
	IsDir() bool
	IsAppend() bool
	IsExclusive() bool
	IsTemporary() bool
	IsSymlink() bool
	IsDevice() bool
	IsNamedPipe() bool
	IsSocket() bool
	IsSetuid() bool
	IsSetgid() bool
	IsCharDevice() bool
	IsSticky() bool
	IsIrregular() bool

	Perm() FSFileMode
	String() string

	// Nub retrieves the underlying implementation
	Nub() FSFileMode
}

type FileSystem

type FileSystem interface {
	FormatDirEntry(DirEntry) string
	FormatFileInfo(FileInfo) string
	Glob(FileSystem, string) ([]string, error)
	ReadFile(FileSystem, string) ([]byte, error)
	ValidPath(string) bool
	WalkDir(FileSystem, string, WalkDirFunc) error

	// Constructors
	FileInfoToDirEntry(FileInfo) DirEntry
	ReadDir(FileSystem, string) ([]DirEntry, error)

	Sub(FileSystem, string) (FileSystem, error)

	Stat(FileSystem, string) (FileInfo, error)
}

The FileSystem interface provides access to all the functions and structs in the io/fs package. It is renamed to FileSystem, instead of FS, because the io/fs package already contains an interface named FS.

type GlobFS

type GlobFS = fs.GlobFS

type PathError

type PathError = fs.PathError

type ReadDirFS

type ReadDirFS = fs.ReadDirFS

type ReadDirFile

type ReadDirFile = fs.ReadDirFile

type ReadFileFS

type ReadFileFS = fs.ReadFileFS

type StatFS

type StatFS = fs.StatFS

type SubFS

type SubFS = fs.SubFS

type WalkDirFunc

type WalkDirFunc = fs.WalkDirFunc

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL