# merged_range
A crate that can merge overlapping ranges
[![Apache licensed][apache-badge]][apache-url]
[![CI][actions-badge]][actions-url]
[apache-badge]: https://img.shields.io/badge/license-Apache-blue.svg
[apache-url]: https://github.com/datenlord/merged_range/blob/master/LICENSE
[actions-badge]: https://github.com/datenlord/merged_range/actions/workflows/ci.yml/badge.svg
[actions-url]: https://github.com/datenlord/merged_range/actions/workflows/ci.yml
## Overview
merged_range is used to query whether the given range is contained in the existing range, if it is contained, return true, otherwise return false. it uses a sorted vector to store ranges. and it can merge the new range with the existing ranges. insert and query time complexity is both O(logn).
## Example
add dependency to Cargo.toml
```toml
[dependencies]
merged_range = "0.1.0"
```
then use it in your code
```rust
use merged_range::MergedRange;
let mut mr = MergedRange::new();
mr.insert_range(&(1..10));
mr.insert_range(&(5..20));
assert_eq!(mr.contains_range(&(3..15)), true);
assert_eq!(mr.contains_range(&(10..21)), false);
```
## License
This project is licensed under the [MIT license][apache-url].