iterators.go
package testmark
// HunkIterator provides safe iteration over document hunks.
type HunkIterator struct {
doc *Document
index int
}
// Next advances to the next hunk and returns true if successful.
func (it *HunkIterator) Next() bool {
return it.index < len(it.doc.hunks)
}
// Hunk returns the current hunk. Only valid after Next() returns true.
func (it *HunkIterator) Hunk() *Hunk {
if it.index >= len(it.doc.hunks) {
return nil
}
hunk := it.doc.hunks[it.index]
it.index++
return hunk.hunk
}
// DirIterator provides safe iteration over directory entries.
type DirIterator struct {
entries []*DirEntry
index int
}
// Next advances to the next entry and returns true if successful.
func (it *DirIterator) Next() bool {
return it.index < len(it.entries)
}
// Entry returns the current entry. Only valid after Next() returns true.
func (it *DirIterator) Entry() *DirEntry {
if it.index >= len(it.entries) {
return nil
}
entry := it.entries[it.index]
it.index++
return entry
}
v2/iterators.go · 1003 B · 07c6e4c9e7