entry_dir_iterator.go 625 B

123456789101112131415161718192021222324252627282930
  1. package fs
  2. import "context"
  3. type staticIterator struct {
  4. cur int
  5. entries []Entry
  6. err error
  7. }
  8. func (it *staticIterator) Close() {
  9. }
  10. func (it *staticIterator) Next(ctx context.Context) (Entry, error) {
  11. if it.cur < len(it.entries) {
  12. v := it.entries[it.cur]
  13. it.cur++
  14. return v, it.err
  15. }
  16. return nil, nil
  17. }
  18. // StaticIterator returns a DirectoryIterator which returns the provided
  19. // entries in order followed by a given final error.
  20. // It is not safe to concurrently access directory iterator.
  21. func StaticIterator(entries []Entry, err error) DirectoryIterator {
  22. return &staticIterator{0, entries, err}
  23. }