1use ranges_ext::RangeSet;
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 let mut set: RangeSet<i32, &str> = RangeSet::new();
6
7 set.add(0..10, "type_a")?;
9 set.add(5..15, "type_b")?; set.add(20..30, "type_a")?;
11 set.add(25..35, "type_a")?; println!("=== 带 kind 的区间集合 ===");
14 for info in set.iter() {
15 println!(
16 "Range: [{}, {}), Kind: {:?}",
17 info.range.start, info.range.end, info.kind
18 );
19 }
20
21 let mut set2: RangeSet<i32, i32> = RangeSet::new();
23 set2.add(0..10, 1)?;
24 set2.add(10..20, 1)?; set2.add(20..30, 2)?; set2.add(30..40, 2)?; println!("\n=== 相邻区间合并示例 ===");
29 for info in set2.iter() {
30 println!(
31 "Range: [{}, {}), Kind: {}",
32 info.range.start, info.range.end, info.kind
33 );
34 }
35
36 Ok(())
37}