Files
imageutils/cmd/mesh/9p.go
2025-12-14 06:04:57 +03:00

42 lines
935 B
Go

//go:build ignore
package main
func ListenAndServe(addr string, filesystem fs.FS) error {
styx.HandlerFunc(func(s *styx.Session) {
for s.Next() {
switch msg := s.Request.(type) {
case styx.Twalk:
msg.Rwalk(fs.Stat(filesystem, msg.Path()))
case styx.Topen:
msg.Ropen(filesystem.Open(msg.Path()))
case styx.Tstat:
msg.Rstat(fs.Stat(filesystem, msg.Path()))
}
}
},
)
}
type FS struct {
meshFile
}
type meshFile struct {
}
type meshFileInfo struct {
bufio.Reader
time.Time
}
func (f meshFileInfo) Name() string { return "mesh" }
func (f meshFileInfo) Size() int64 { return f.Reader.Size() }
func (f meshFileInfo) Mode() fs.FileMode { return fs.ModePerm }
func (f meshFileInfo) ModTime() time.Time { return f.Time }
func (f meshFileInfo) IsDir() bool { return false }
func (f meshFileInfo) Sys() any { return nil }
func (f meshFile) Stat() (fs.FileInfo, error) {
}