#range #flatten #section #overlap #intersect

flatten_overlapping_ranges

将重叠的范围扁平化为一系列的区域

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018年1月21日

#5 in #intersect

ISC 许可证

5KB
90 代码行

flatten-overlapping-ranges-rs

将重叠的范围扁平化为一系列的区域。

---A---     ---D---
  -----B------
     --C--
-- --- -- --- -- -- -----
A  A   A         D  D
   B   B  B   B  B
       C  C

我的第一个crate!🙌

crates.io version build status ISC-licensed chat on gitter

安装

将以下内容放入你的 Cargo.toml

flatten_overlapping_ranges = "0.1.0"

用法

use flatten_overlapping_ranges::flatten;

let simple: Vec<(&char, usize, usize)> = vec![
    (&'a', 0, 7),
    (&'b', 2, 12),
    (&'c', 5, 5),
    (&'d', 12, 7)
];

println!("{:?}", flatten(&simple));
[
	(2, ['a']),
	(3, ['a', 'b']),
	(2, ['a', 'b', 'c']),
	(3, ['b', 'c']),
	(2, ['b']),
	(2, ['b', 'd']),
	(5, ['d'])
]

贡献

这是我写的第一个 Rust 代码,所以请多多包涵!🙈

如果你在使用 flatten-overlapping-ranges-rs 时有任何问题或困难,请首先检查你的代码和配置。如果你认为你找到了一个错误或想提出一个功能,请参考问题页面

无运行时依赖