aboutsummaryrefslogtreecommitdiff
path: root/object/resolve
diff options
context:
space:
mode:
Diffstat (limited to 'object/resolve')
-rw-r--r--object/resolve/treefs_new.go2
-rw-r--r--object/resolve/treefs_open.go4
-rw-r--r--object/resolve/treefs_readdir.go1
-rw-r--r--object/resolve/treefs_readfile.go3
-rw-r--r--object/resolve/treefs_stat.go5
-rw-r--r--object/resolve/treefs_sub.go1
6 files changed, 15 insertions, 1 deletions
diff --git a/object/resolve/treefs_new.go b/object/resolve/treefs_new.go
index a51c06af..9a48a02e 100644
--- a/object/resolve/treefs_new.go
+++ b/object/resolve/treefs_new.go
@@ -2,7 +2,7 @@ package resolve
import "codeberg.org/lindenii/furgit/objectid"
-// TreeFS returns one new filesystem view rooted at root, which may be any
+// TreeFS returns a new filesystem view rooted at root, which may be any
// tree-ish object accepted by PeelToTreeID.
func (r *Resolver) TreeFS(root objectid.ObjectID) (*TreeFS, error) {
rootTree, err := r.PeelToTreeID(root)
diff --git a/object/resolve/treefs_open.go b/object/resolve/treefs_open.go
index 76bd5e4f..9d97f58e 100644
--- a/object/resolve/treefs_open.go
+++ b/object/resolve/treefs_open.go
@@ -8,6 +8,10 @@ import (
"codeberg.org/lindenii/furgit/object"
)
+// Open opens name for reading.
+//
+// Directories are returned as fs.ReadDirFile values. Gitlink entries are not
+// readable through TreeFS.
func (treeFS *TreeFS) Open(name string) (fs.File, error) {
entry, err := treeFS.resolvePath(treeFSOpOpen, name)
if err != nil {
diff --git a/object/resolve/treefs_readdir.go b/object/resolve/treefs_readdir.go
index 293dcec4..5516de33 100644
--- a/object/resolve/treefs_readdir.go
+++ b/object/resolve/treefs_readdir.go
@@ -2,6 +2,7 @@ package resolve
import "io/fs"
+// ReadDir reads and returns all directory entries for name.
func (treeFS *TreeFS) ReadDir(name string) ([]fs.DirEntry, error) {
file, err := treeFS.Open(name)
if err != nil {
diff --git a/object/resolve/treefs_readfile.go b/object/resolve/treefs_readfile.go
index 72af931c..e2bc1698 100644
--- a/object/resolve/treefs_readfile.go
+++ b/object/resolve/treefs_readfile.go
@@ -7,6 +7,9 @@ import (
"codeberg.org/lindenii/furgit/object"
)
+// ReadFile reads the blob contents at name.
+//
+// Directories and gitlink entries are not readable through TreeFS.
func (treeFS *TreeFS) ReadFile(name string) ([]byte, error) {
entry, err := treeFS.resolvePath(treeFSOpReadFile, name)
if err != nil {
diff --git a/object/resolve/treefs_stat.go b/object/resolve/treefs_stat.go
index 5fbecac6..044ba049 100644
--- a/object/resolve/treefs_stat.go
+++ b/object/resolve/treefs_stat.go
@@ -2,6 +2,11 @@ package resolve
import "io/fs"
+// Stat returns synthetic file metadata for name.
+//
+// TreeFS metadata reflects Git tree entry mode and blob size where applicable.
+// It does not represent filesystem stat metadata: ModTime is zero, ownership is
+// unavailable, and Sys returns the underlying object.TreeEntry when one exists.
func (treeFS *TreeFS) Stat(name string) (fs.FileInfo, error) {
entry, err := treeFS.resolvePath(treeFSOpStat, name)
if err != nil {
diff --git a/object/resolve/treefs_sub.go b/object/resolve/treefs_sub.go
index d8832818..f0eefdc5 100644
--- a/object/resolve/treefs_sub.go
+++ b/object/resolve/treefs_sub.go
@@ -2,6 +2,7 @@ package resolve
import "io/fs"
+// Sub returns a new TreeFS rooted at dir.
func (treeFS *TreeFS) Sub(dir string) (fs.FS, error) {
entry, err := treeFS.resolvePath(treeFSOpSub, dir)
if err != nil {