in pkg/math/segments.go [37:51]
func (r Segments) All() chan Segment {
ch := make(chan Segment)
go func() {
for i := AlignDown(r.offset, int64(r.step)); i < r.size; i += int64(r.step) {
absOffset := Max64(i, r.offset)
seg := Segment{Index: i, Offset: absOffset - i}
seg.Count = int(Min64(i+int64(r.step), r.size) - absOffset)
if seg.Count > 0 {
ch <- seg
}
}
close(ch)
}()
return ch
}