ref: fc2eddf2f0166d491c28481acae529b2ab55f87c
parent: 5db671fb6d41173f94c1a8578bfec1d3b019ac9d
author: Runxi Yu <runxiyu@umich.edu>
date: Mon Mar 23 02:17:52 EDT 2026
object/resolve: Add docs to treefs exported functions
--- a/object/resolve/treefs_new.go
+++ b/object/resolve/treefs_new.go
@@ -2,7 +2,7 @@
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)
--- a/object/resolve/treefs_open.go
+++ b/object/resolve/treefs_open.go
@@ -8,6 +8,10 @@
"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 {--- a/object/resolve/treefs_readdir.go
+++ b/object/resolve/treefs_readdir.go
@@ -2,6 +2,7 @@
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 {--- a/object/resolve/treefs_readfile.go
+++ b/object/resolve/treefs_readfile.go
@@ -7,6 +7,9 @@
"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 {--- a/object/resolve/treefs_stat.go
+++ b/object/resolve/treefs_stat.go
@@ -2,6 +2,11 @@
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 {--- a/object/resolve/treefs_sub.go
+++ b/object/resolve/treefs_sub.go
@@ -2,6 +2,7 @@
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 {--
⑨