// vfs/fileinfo.go package vfs import ( "os" "time" ) type FileInfo struct { name string size int64 MTime time.Time ATime time.Time CTime time.Time // Creation time AccessCount int64 } func NewFileInfo(key string, size int64, modTime time.Time) *FileInfo { now := time.Now() return &FileInfo{ name: key, size: size, MTime: modTime, ATime: now, CTime: now, AccessCount: 0, } } func NewFileInfoFromOS(f os.FileInfo, key string) *FileInfo { now := time.Now() return &FileInfo{ name: key, size: f.Size(), MTime: f.ModTime(), ATime: now, CTime: now, // Will be overwritten if loaded from disk AccessCount: 0, } } func (f FileInfo) Name() string { return f.name } func (f FileInfo) Size() int64 { return f.size } func (f FileInfo) ModTime() time.Time { return f.MTime } func (f FileInfo) AccessTime() time.Time { return f.ATime }