func()

in util/gcs/fake/fake.go [359:389]


func (fi *Iterator) Next() (*storage.ObjectAttrs, error) {
	if fi.ctx.Err() != nil {
		return nil, fi.ctx.Err()
	}
	if fi.ErrOpen != nil {
		return nil, fi.ErrOpen
	}
	for fi.Idx < len(fi.Objects) {
		if fi.Offset == "" {
			break
		}
		name, prefix := fi.Objects[fi.Idx].Name, fi.Objects[fi.Idx].Prefix
		if name != "" && name < fi.Offset {
			continue
		}
		if prefix != "" && prefix < fi.Offset {
			continue
		}
		fi.Idx++
	}
	if fi.Idx >= len(fi.Objects) {
		return nil, iterator.Done
	}
	if fi.Idx > 0 && fi.Idx == fi.Err {
		return nil, errors.New("injected Iterator error")
	}

	o := fi.Objects[fi.Idx]
	fi.Idx++
	return &o, nil
}