aboutsummaryrefslogtreecommitdiff
path: root/object/fetch/treefs_readdir.go
diff options
context:
space:
mode:
Diffstat (limited to 'object/fetch/treefs_readdir.go')
-rw-r--r--object/fetch/treefs_readdir.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/object/fetch/treefs_readdir.go b/object/fetch/treefs_readdir.go
new file mode 100644
index 00000000..7518c607
--- /dev/null
+++ b/object/fetch/treefs_readdir.go
@@ -0,0 +1,20 @@
+package fetch
+
+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 {
+ return nil, err
+ }
+
+ defer func() { _ = file.Close() }()
+
+ readDirFile, ok := file.(fs.ReadDirFile)
+ if !ok {
+ return nil, treeFSPathError(treeFSOpReadDir, name, fs.ErrInvalid)
+ }
+
+ return readDirFile.ReadDir(-1)
+}