summaryrefslogtreecommitdiff
path: root/vendor/github.com/dsoprea/go-utility/v2/filesystem/simplefileinfo.go
blob: a227b0b007f33db8286ac90a0c26019015de36e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package rifs

import (
	"os"
	"time"
)

// SimpleFileInfo is a simple `os.FileInfo` implementation useful for testing
// with the bare minimum.
type SimpleFileInfo struct {
	filename string
	isDir    bool
	size     int64
	mode     os.FileMode
	modTime  time.Time
}

// NewSimpleFileInfoWithFile returns a new file-specific SimpleFileInfo.
func NewSimpleFileInfoWithFile(filename string, size int64, mode os.FileMode, modTime time.Time) *SimpleFileInfo {
	return &SimpleFileInfo{
		filename: filename,
		isDir:    false,
		size:     size,
		mode:     mode,
		modTime:  modTime,
	}
}

// NewSimpleFileInfoWithDirectory returns a new directory-specific
// SimpleFileInfo.
func NewSimpleFileInfoWithDirectory(filename string, modTime time.Time) *SimpleFileInfo {
	return &SimpleFileInfo{
		filename: filename,
		isDir:    true,
		mode:     os.ModeDir,
		modTime:  modTime,
	}
}

// Name returns the base name of the file.
func (sfi *SimpleFileInfo) Name() string {
	return sfi.filename
}

// Size returns the length in bytes for regular files; system-dependent for
// others.
func (sfi *SimpleFileInfo) Size() int64 {
	return sfi.size
}

// Mode returns the file mode bits.
func (sfi *SimpleFileInfo) Mode() os.FileMode {
	return sfi.mode
}

// ModTime returns the modification time.
func (sfi *SimpleFileInfo) ModTime() time.Time {
	return sfi.modTime
}

// IsDir returns true if a directory.
func (sfi *SimpleFileInfo) IsDir() bool {
	return sfi.isDir
}

// Sys returns internal state.
func (sfi *SimpleFileInfo) Sys() interface{} {
	return nil
}