From 24a9457c6bcd3332d2ac0ab02c4cc99bb13488fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Sat, 15 Mar 2025 17:35:40 +0100 Subject: [PATCH] Refactor: export FileInfo --- file.go | 2 +- file_info.go | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/file.go b/file.go index d52e2b9..1024fa1 100644 --- a/file.go +++ b/file.go @@ -127,7 +127,7 @@ func (f *File) ReadDir(n int) ([]fs.DirEntry, error) { } } var out []fs.DirEntry - var fi fileInfo + var fi FileInfo for _, e := range d.Entries[start:end] { fi, err = f.r.newFileInfo(e) if err != nil { diff --git a/file_info.go b/file_info.go index 74ecdbc..06f90c7 100644 --- a/file_info.go +++ b/file_info.go @@ -8,7 +8,7 @@ import ( "github.com/CalebQ42/squashfs/low/inode" ) -type fileInfo struct { +type FileInfo struct { name string size int64 perm uint32 @@ -16,15 +16,15 @@ type fileInfo struct { fileType uint16 } -func (r Reader) newFileInfo(e directory.Entry) (fileInfo, error) { +func (r Reader) newFileInfo(e directory.Entry) (FileInfo, error) { i, err := r.Low.InodeFromEntry(e) if err != nil { - return fileInfo{}, err + return FileInfo{}, err } return newFileInfo(e.Name, &i), nil } -func newFileInfo(name string, i *inode.Inode) fileInfo { +func newFileInfo(name string, i *inode.Inode) FileInfo { var size int64 switch i.Type { case inode.Fil: @@ -32,7 +32,7 @@ func newFileInfo(name string, i *inode.Inode) fileInfo { case inode.EFil: size = int64(i.Data.(inode.EFile).Size) } - return fileInfo{ + return FileInfo{ name: name, size: size, perm: uint32(i.Perm), @@ -41,15 +41,15 @@ func newFileInfo(name string, i *inode.Inode) fileInfo { } } -func (f fileInfo) Name() string { +func (f FileInfo) Name() string { return f.name } -func (f fileInfo) Size() int64 { +func (f FileInfo) Size() int64 { return f.size } -func (f fileInfo) Mode() fs.FileMode { +func (f FileInfo) Mode() fs.FileMode { switch f.fileType { case inode.Dir, inode.EDir: return fs.FileMode(f.perm | uint32(fs.ModeDir)) @@ -65,31 +65,31 @@ func (f fileInfo) Mode() fs.FileMode { return fs.FileMode(f.perm) } -func (f fileInfo) ModTime() time.Time { +func (f FileInfo) ModTime() time.Time { return time.Unix(int64(f.modTime), 0) } -func (f fileInfo) IsDir() bool { +func (f FileInfo) IsDir() bool { return f.fileType == inode.Dir || f.fileType == inode.EDir } -func (f fileInfo) IsSymlink() bool { +func (f FileInfo) IsSymlink() bool { return f.fileType == inode.Sym || f.fileType == inode.ESym } -func (f fileInfo) IsDevice() bool { +func (f FileInfo) IsDevice() bool { return f.fileType == inode.Block || f.fileType == inode.EBlock || f.fileType == inode.Char || f.fileType == inode.EChar } -func (f fileInfo) IsFifo() bool { +func (f FileInfo) IsFifo() bool { return f.fileType == inode.Fifo || f.fileType == inode.EFifo } -func (f fileInfo) IsSocket() bool { +func (f FileInfo) IsSocket() bool { return f.fileType == inode.Sock || f.fileType == inode.ESock } -func (f fileInfo) Sys() any { +func (f FileInfo) Sys() any { return nil }