restic/internal/webdav/fileinfo.go
2024-02-25 11:01:59 +01:00

39 lines
961 B
Go

package webdav
import (
"os"
"time"
"github.com/anacrolix/fuse"
)
// virtFileInfo is used to construct an os.FileInfo for a server.
type virtFileInfo struct {
name string
size int64
mode os.FileMode
modtime time.Time
isdir bool
}
// statically ensure that virtFileInfo implements os.FileInfo.
var _ os.FileInfo = virtFileInfo{}
func (fi virtFileInfo) Name() string { return fi.name }
func (fi virtFileInfo) Size() int64 { return fi.size }
func (fi virtFileInfo) Mode() os.FileMode { return fi.mode }
func (fi virtFileInfo) ModTime() time.Time { return fi.modtime }
func (fi virtFileInfo) IsDir() bool { return fi.isdir }
func (fi virtFileInfo) Sys() interface{} { return nil }
func fileInfoFromAttr(name string, attr fuse.Attr) os.FileInfo {
fi := virtFileInfo{
name: name,
size: int64(attr.Size),
mode: attr.Mode,
modtime: attr.Mtime,
isdir: (attr.Mode & os.ModeDir) != 0,
}
return fi
}