commit 4e7a750c0706beff489848216ad32c9fc16f6fe3
parent 7d937ac1f9a78b13cfd84ebdd3a26d8024b77b10
Author: Matsuda Kenji <info@mtkn.jp>
Date: Sun, 10 Sep 2023 07:52:31 +0900
update numfs
Diffstat:
1 file changed, 16 insertions(+), 21 deletions(-)
diff --git a/cmd/numfs.go b/cmd/numfs.go
@@ -1,7 +1,6 @@
package main
import (
- "bytes"
"flag"
"fmt"
"io/fs"
@@ -16,14 +15,16 @@ import (
var root *numFile
func init() {
+ fsys := new(numFS)
root = &numFile{
+ fs: fsys,
id: -1,
text: "",
children: []*numFile{
- &numFile{0, "0", nil},
- &numFile{1, "1", nil},
- &numFile{2, "2", nil},
- &numFile{3, "3", nil},
+ &numFile{fsys, 0, "0", nil},
+ &numFile{fsys, 1, "1", nil},
+ &numFile{fsys, 2, "2", nil},
+ &numFile{fsys, 3, "3", nil},
},
}
}
@@ -54,12 +55,15 @@ func (fsys *numFS) Open(name string) (lib9p.File, error) {
}
type numFile struct {
+ fs *numFS
id int
text string
children []*numFile
}
-func (f *numFile) Stat() (fs.FileInfo, error) {
+func (f *numFile) Fsys() lib9p.FS { return f.fs }
+
+func (f *numFile) Stat() (*lib9p.FileInfo, error) {
var stat lib9p.Stat
stat.Type = 0
stat.Dev = 0
@@ -117,26 +121,17 @@ func (f *numFile) PathName() string {
return f.text
}
-func (f *numFile) ReadAt(p []byte, off int64) (n int, err error) {
- return bytes.NewReader([]byte(f.text)).ReadAt(p, off)
-}
+func (f *numFile) Parent() (lib9p.File, error) { return root, nil }
-func (f *numFile) ReadDir(n int) ([]*lib9p.DirEntry, error) {
+func (f *numFile) Child() ([]lib9p.File, error) {
if f.id != -1 {
return nil, fmt.Errorf("not a directory")
}
- if n < 0 {
- n = len(root.children)
- }
- de := make([]*lib9p.DirEntry, n)
- for i := 0; i < len(root.children) && i < n; i++ {
- stat, err := root.children[i].Stat()
- if err != nil {
- return de, err
- }
- de[i] = &lib9p.DirEntry{stat.(*lib9p.FileInfo).Stat}
+ children := make([]lib9p.File, len(f.children))
+ for i, c := range f.children {
+ children[i] = c
}
- return de, nil
+ return children, nil
}
var dFlag = flag.Bool("D", false, "Prints chatty message to the stderr.")