use common_range_tools::{Consolidate, ConsolidationOrder};
fn main() {
for result in Consolidate::num_defaults(
[
1..=4,
3..=5,
10..=12,
10..=11,
13..=13,
1..=2,
]
.into_iter(),
)
.to_consolidate_checker(ConsolidationOrder::Forward)
{
match result {
Ok(row) => {
let (outer, src) = row.as_src();
println!("Outer Range: {}->{}", outer.start(), outer.end());
for (id, original) in src {
println!(
" Row: {}, Range: {}->{}",
id,
original.start(),
original.end()
);
}
}
Err((msg, row)) => {
let (outer, src) = row.as_src();
println!(
"Error: {}, \n Produced range: {}->{}",
msg,
outer.start(),
outer.end()
);
for (id, original) in src {
println!(
" Caused by: Row: {}, Range: {}->{}",
id,
original.start(),
original.end()
);
}
}
}
}
}