Fuse SUCCESS

This commit is contained in:
Caleb Gardner
2022-12-03 02:45:58 -06:00
parent a015b16293
commit ffbf4ebc64
9 changed files with 320 additions and 11 deletions
+7 -2
View File
@@ -10,6 +10,7 @@ import (
"strconv"
"strings"
"github.com/CalebQ42/squashfs/internal/data"
"github.com/CalebQ42/squashfs/internal/directory"
"github.com/CalebQ42/squashfs/internal/inode"
)
@@ -18,7 +19,7 @@ import (
type File struct {
i inode.Inode
rdr io.Reader
fullRdr io.WriterTo
fullRdr *data.FullReader
r *Reader
parent *FS
e directory.Entry
@@ -35,7 +36,7 @@ func (r Reader) newFile(en directory.Entry, parent *FS) (*File, error) {
return nil, err
}
var rdr io.Reader
var full io.WriterTo
var full *data.FullReader
if i.Type == inode.Fil || i.Type == inode.EFil {
full, rdr, err = r.getReaders(i)
if err != nil {
@@ -68,6 +69,10 @@ func (f File) Read(p []byte) (int, error) {
return f.rdr.Read(p)
}
func (f File) ReadAt(p []byte, off int64) (int, error) {
return f.fullRdr.ReadAt(p, off)
}
// WriteTo writes all data from the file to the writer. This is multi-threaded.
// The underlying reader is seperate from the one used with Read and can be reused.
func (f File) WriteTo(w io.Writer) (int64, error) {