Files
squashfs/reader.go
T
2025-04-10 02:15:24 -05:00

38 lines
641 B
Go

package squashfs
import (
"io"
"time"
"github.com/CalebQ42/squashfs/internal/toreader"
squashfslow "github.com/CalebQ42/squashfs/low"
)
type Reader struct {
FS
Low squashfslow.Reader
}
func NewReader(r io.ReaderAt) (Reader, error) {
rdr, err := squashfslow.NewReader(r)
if err != nil {
return Reader{}, err
}
out := Reader{
Low: rdr,
}
out.FS = FS{
d: rdr.Root,
r: &out,
}
return out, nil
}
func NewReaderAtOffset(r io.ReaderAt, offset int64) (Reader, error) {
return NewReader(toreader.NewOffsetReader(r, offset))
}
func (r *Reader) ModTime() time.Time {
return time.Unix(int64(r.Low.Superblock.ModTime), 0)
}