Function libnetrangemerge::merge_ranges_slice [−][src]
pub fn merge_ranges_slice<R: Range>(ranges: &mut [RangeInterest<R>]) -> usize
Merges all provided ranges in place, returning the number of valid ranges.
As this operation is performed in place, after the operation is complete some number of ranges at the end of the input slice may no longer be valid. Attempting to access them in any way may panic.
This function does not allocate and is no_std compatible.
Example
use libnetrangemerge::{RangeInterest, IpRange, merge_ranges_slice}; let mut ranges: Vec<RangeInterest<IpRange>> = vec![ RangeInterest::new("127.0.0.8/29".parse().unwrap(), false), RangeInterest::new("127.0.0.16/29".parse().unwrap(), true), RangeInterest::new("0.0.0.0/0".parse().unwrap(), false), ]; let len = merge_ranges_slice(&mut ranges); ranges.truncate(len);