Blame


1 1081cf75 2024-11-04 o package fs
2 1081cf75 2024-11-04 o
3 1081cf75 2024-11-04 o import (
4 1081cf75 2024-11-04 o "io"
5 1081cf75 2024-11-04 o "io/fs"
6 1081cf75 2024-11-04 o )
7 1081cf75 2024-11-04 o
8 1081cf75 2024-11-04 o type dirInfo struct {
9 1081cf75 2024-11-04 o entries []fs.DirEntry
10 1081cf75 2024-11-04 o entryp int
11 1081cf75 2024-11-04 o }
12 1081cf75 2024-11-04 o
13 1081cf75 2024-11-04 o func (d *dirInfo) ReadDir(n int) ([]fs.DirEntry, error) {
14 1081cf75 2024-11-04 o entries := d.entries[d.entryp:]
15 1081cf75 2024-11-04 o if n < 0 {
16 1081cf75 2024-11-04 o d.entryp = len(d.entries) // advance to the end
17 1081cf75 2024-11-04 o if len(entries) == 0 {
18 1081cf75 2024-11-04 o return nil, nil
19 1081cf75 2024-11-04 o }
20 1081cf75 2024-11-04 o return entries, nil
21 1081cf75 2024-11-04 o }
22 1081cf75 2024-11-04 o
23 1081cf75 2024-11-04 o var err error
24 1081cf75 2024-11-04 o if n >= len(entries) {
25 1081cf75 2024-11-04 o err = io.EOF
26 1081cf75 2024-11-04 o } else if d.entryp >= len(d.entries) {
27 1081cf75 2024-11-04 o err = io.EOF
28 1081cf75 2024-11-04 o } else {
29 1081cf75 2024-11-04 o entries = entries[:n-1]
30 1081cf75 2024-11-04 o }
31 1081cf75 2024-11-04 o d.entryp += n
32 1081cf75 2024-11-04 o return entries, err
33 1081cf75 2024-11-04 o }