pub fn split(len: u64, parts: usize) -> Vec<Range<u64>>
Split 0..len into at most parts contiguous ranges of near-equal size, in order (no empty ranges).
0..len
parts