lib9p

Go 9P library.
Log | Files | Refs

commit fc700afc2c9e19c2d1fc76aac3d82487117c0a7d
parent 32c2ffdfa13b6d4a132222be1063e1f023b047c7
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Sun,  3 Sep 2023 07:35:02 +0900

change FileInfo from interface to struct

Diffstat:
Mdiskfs/file.go | 4++--
Mdiskfs/stat.go | 13-------------
Miofs/file.go | 4++--
Miofs/stat.go | 13-------------
Mstat.go | 11++++-------
5 files changed, 8 insertions(+), 37 deletions(-)

diff --git a/diskfs/file.go b/diskfs/file.go @@ -129,7 +129,7 @@ func (f *File) Muid() string { } func (f *File) Stat() (fs.FileInfo, error) { - return &FileInfo{Stat: lib9p.StatFromFile(f)}, nil + return &lib9p.FileInfo{Stat: *lib9p.StatFromFile(f)}, nil } func (f *File) Close() error { @@ -157,7 +157,7 @@ func (f *File) ReadDir(n int) ([]*lib9p.DirEntry, error) { } id := idFromInfo(info) de[i] = &lib9p.DirEntry{ - FileInfo: &FileInfo{fiStat(f.fs.qidPool, id, info)}, + FileInfo: &lib9p.FileInfo{*fiStat(f.fs.qidPool, id, info)}, } } return de, nil diff --git a/diskfs/stat.go b/diskfs/stat.go @@ -6,23 +6,10 @@ import ( "os/user" "strconv" "syscall" - "time" "lib9p" ) -type FileInfo struct { - Stat *lib9p.Stat -} - -func (fi *FileInfo) Name() string { return fi.Stat.Name } -func (fi *FileInfo) Size() int64 { return fi.Stat.Length } -func (fi *FileInfo) Mode() fs.FileMode { return lib9p.Mode9ToFSMode(fi.Stat.Mode) } -func (fi *FileInfo) ModTime() time.Time { return time.Unix(int64(fi.Stat.Mtime), 0) } -func (fi *FileInfo) IsDir() bool { return fi.Stat.Mode&lib9p.DMDIR != 0 } -func (fi *FileInfo) Sys() any { return fi.Stat } -func (fi *FileInfo) Qid() lib9p.Qid { return fi.Sys().(*lib9p.Stat).Qid } - func fiStat(pool *QidPool, id fileID, info fs.FileInfo) *lib9p.Stat { qid, ok := pool.lookupID(id) if !ok { diff --git a/iofs/file.go b/iofs/file.go @@ -102,7 +102,7 @@ func (f *File) Muid() string { } func (f *File) Stat() (fs.FileInfo, error) { - return &FileInfo{Stat: lib9p.StatFromFile(f)}, nil + return &lib9p.FileInfo{Stat: *lib9p.StatFromFile(f)}, nil } func (f *File) Close() error { @@ -145,7 +145,7 @@ func (f *File) ReadDir(n int) ([]*lib9p.DirEntry, error) { fpath := path.Join(f.path, info.Name()) de[i] = &lib9p.DirEntry{ - FileInfo: &FileInfo{fiStat(f.fs.qidPool, fileID(fpath), info)}, + FileInfo: &lib9p.FileInfo{*fiStat(f.fs.qidPool, fileID(fpath), info)}, } } return de, nil diff --git a/iofs/stat.go b/iofs/stat.go @@ -2,23 +2,10 @@ package iofs import ( "io/fs" - "time" "lib9p" ) -type FileInfo struct { - Stat *lib9p.Stat -} - -func (fi *FileInfo) Name() string { return fi.Stat.Name } -func (fi *FileInfo) Size() int64 { return fi.Stat.Length } -func (fi *FileInfo) Mode() fs.FileMode { return lib9p.Mode9ToFSMode(fi.Stat.Mode) } -func (fi *FileInfo) ModTime() time.Time { return time.Unix(int64(fi.Stat.Mtime), 0) } -func (fi *FileInfo) IsDir() bool { return fi.Stat.Mode&lib9p.DMDIR != 0 } -func (fi *FileInfo) Sys() any { return fi.Stat } -func (fi *FileInfo) Qid() lib9p.Qid { return fi.Sys().(*lib9p.Stat).Qid } - func fiType(fi fs.FileInfo) uint16 { return 0 } func fiDev(fi fs.FileInfo) uint32 { return 0 } func fiLength(fi fs.FileInfo) int64 { return fi.Size() } diff --git a/stat.go b/stat.go @@ -3,6 +3,7 @@ package lib9p import ( "fmt" "io/fs" + "time" ) type FileMode uint32 @@ -121,12 +122,9 @@ func (s *Stat) String() string { s.Atime, s.Mtime, s.Length, s.Type, s.Dev) } -// Sys must return Stat struct. -type FileInfo = fs.FileInfo -/* type FileInfo struct { - Stat *Stat + Stat Stat } func (fi *FileInfo) Name() string { return fi.Stat.Name } @@ -134,6 +132,5 @@ func (fi *FileInfo) Size() int64 { return fi.Stat.Length } func (fi *FileInfo) Mode() fs.FileMode { return Mode9ToFSMode(fi.Stat.Mode) } func (fi *FileInfo) ModTime() time.Time { return time.Unix(int64(fi.Stat.Mtime), 0) } func (fi *FileInfo) IsDir() bool { return fi.Stat.Mode&DMDIR != 0 } -func (fi *FileInfo) Sys() any { return fi.Stat } -func (fi *FileInfo) Qid() *Qid { return fi.Sys().(*Stat).Qid } -*/ +func (fi *FileInfo) Sys() any { return &fi.Stat } +func (fi *FileInfo) Qid() Qid { return fi.Stat.Qid }