e5b3c4757d
- Add RunIterator and decoder from RLE - Add BitIterator and BitsFromRuns - Add BitsFromSlice - Add RunsFromBits License: MIT Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
25 lines
325 B
Go
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
|
|
}
|