lotus/lib/rlepluslazy/interface.go
Jakub Sztandera e5b3c4757d
More iterative algorithms
- Add RunIterator and decoder from RLE
 - Add BitIterator and BitsFromRuns
 - Add BitsFromSlice
 - Add RunsFromBits

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-12-07 15:48:19 +01:00

25 lines
325 B
Go

package rlepluslazy
type Run struct {
Val bool
Len uint64
}
func (r Run) Valid() bool {
return r.Len != 0
}
type RunIterator interface {
NextRun() (Run, error)
HasNext() bool
}
type RunIterable interface {
RunIterator() (RunIterator, error)
}
type BitIterator interface {
Next() (uint64, error)
HasNext() bool
}