|
- package vfs
-
- import "gitlink.org.cn/cloudream/storage2/client2/internal/mount/fuse"
-
- type FuseDirReader struct {
- allEntries []fuse.FsEntry
- nextReadIndex int
- }
-
- func newFuseDirReader(entries []fuse.FsEntry) *FuseDirReader {
- return &FuseDirReader{
- allEntries: entries,
- nextReadIndex: 0,
- }
- }
-
- func (r *FuseDirReader) HasNext() bool {
- return r.nextReadIndex < len(r.allEntries)
- }
-
- func (r *FuseDirReader) Next(n int) ([]fuse.FsEntry, error) {
- if r.nextReadIndex >= len(r.allEntries) {
- return nil, nil
- }
- if n > len(r.allEntries)-r.nextReadIndex {
- n = len(r.allEntries) - r.nextReadIndex
- }
- entries := make([]fuse.FsEntry, n)
- for i := 0; i < n; i++ {
- entries[i] = r.allEntries[r.nextReadIndex+i]
- }
- r.nextReadIndex += n
- return entries, nil
- }
-
- func (r *FuseDirReader) Close() {
-
- }
|