William Petit
a5c67c29d0
Some checks failed
arcad/edge/pipeline/head There was a failure building this commit
47 lines
644 B
Go
47 lines
644 B
Go
package zim
|
|
|
|
import "github.com/pkg/errors"
|
|
|
|
type EntryIterator struct {
|
|
index int
|
|
entry Entry
|
|
err error
|
|
reader *Reader
|
|
}
|
|
|
|
func (it *EntryIterator) Next() bool {
|
|
if it.err != nil {
|
|
return false
|
|
}
|
|
|
|
entryCount := it.reader.EntryCount()
|
|
|
|
if it.index >= int(entryCount-1) {
|
|
return false
|
|
}
|
|
|
|
entry, err := it.reader.EntryAt(it.index)
|
|
if err != nil {
|
|
it.err = errors.WithStack(err)
|
|
|
|
return false
|
|
}
|
|
|
|
it.entry = entry
|
|
it.index++
|
|
|
|
return true
|
|
}
|
|
|
|
func (it *EntryIterator) Err() error {
|
|
return it.err
|
|
}
|
|
|
|
func (it *EntryIterator) Index() int {
|
|
return it.index - 1
|
|
}
|
|
|
|
func (it *EntryIterator) Entry() Entry {
|
|
return it.entry
|
|
}
|