Struct merged_range::MergedRange
source · pub struct MergedRange<K> { /* private fields */ }
Expand description
Store ranges in a sorted vector, and merge overlapping ranges.
Examples
use std::ops::Bound;
use merged_range::MergedRange;
let mut mr = MergedRange::new();
mr.insert_range(&(0..10));
mr.insert((Bound::Included(5), Bound::Excluded(15)));
assert_eq!(mr, MergedRange::from_iter(vec![(Bound::Included(0), Bound::Excluded(15))]));
Implementations§
source§impl<K> MergedRange<K>where
K: Ord + Clone,
impl<K> MergedRange<K>where K: Ord + Clone,
sourcepub fn insert_range<R>(&mut self, range: &R)where
R: RangeBounds<K>,
pub fn insert_range<R>(&mut self, range: &R)where R: RangeBounds<K>,
Insert a range that implements RangeBounds
trait into MergedRange
will clone data because of the RangeBounds
just provides reference
sourcepub fn contains_range<R>(&self, range: &R) -> boolwhere
R: RangeBounds<K>,
pub fn contains_range<R>(&self, range: &R) -> boolwhere R: RangeBounds<K>,
Returns true
if range
is contained in the range set
Trait Implementations§
source§impl<K: Clone> Clone for MergedRange<K>
impl<K: Clone> Clone for MergedRange<K>
source§fn clone(&self) -> MergedRange<K>
fn clone(&self) -> MergedRange<K>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<K: Debug> Debug for MergedRange<K>
impl<K: Debug> Debug for MergedRange<K>
source§impl<K: Default> Default for MergedRange<K>
impl<K: Default> Default for MergedRange<K>
source§fn default() -> MergedRange<K>
fn default() -> MergedRange<K>
Returns the “default value” for a type. Read more
source§impl<K, R> FromIterator<R> for MergedRange<K>where
R: RangeBounds<K>,
K: Ord + Clone,
impl<K, R> FromIterator<R> for MergedRange<K>where R: RangeBounds<K>, K: Ord + Clone,
source§fn from_iter<T: IntoIterator<Item = R>>(iter: T) -> Self
fn from_iter<T: IntoIterator<Item = R>>(iter: T) -> Self
Creates a value from an iterator. Read more
source§impl<K: PartialEq> PartialEq<MergedRange<K>> for MergedRange<K>
impl<K: PartialEq> PartialEq<MergedRange<K>> for MergedRange<K>
source§fn eq(&self, other: &MergedRange<K>) -> bool
fn eq(&self, other: &MergedRange<K>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.