pub fn coalesce_into( ranges: &[ByteRange], max_gap: u64, out: &mut Vec<ByteRange>, )
coalesce_byte_ranges writing into out (cleared first), so a loop reuses one allocation.
coalesce_byte_ranges
out