diff --git a/src/discrete_range_map.rs b/src/discrete_range_map.rs index a188af2..03b6ebb 100644 --- a/src/discrete_range_map.rs +++ b/src/discrete_range_map.rs @@ -584,11 +584,11 @@ where .chain(keeping_after_entry); } - /// Returns an iterator of all the gaps in the map that overlap the given - /// `range` in ascending order. - /// - /// See [`DiscreteRangeMap::gaps_trimmed()`] if you require the returned - /// gaps to be trimmed to be fully contained within given `range`. + /// Returns an iterator of all the gaps in the map that overlap the given + /// `range` in ascending order. + /// + /// See [`DiscreteRangeMap::gaps_trimmed()`] if you require the returned + /// gaps to be trimmed to be fully contained within given `range`. /// /// # Panics /// @@ -598,7 +598,7 @@ where /// /// # Examples /// ``` - /// use discrete_range_map::inclusive_interval::{ie, iu, ii}; + /// use discrete_range_map::inclusive_interval::{ie, ii, iu}; /// use discrete_range_map::DiscreteRangeMap; /// /// let map = DiscreteRangeMap::from_slice_strict([ @@ -615,7 +615,10 @@ where /// [ie(3, 5), ie(7, 9), iu(100)] /// ); /// ``` - pub fn gaps_untrimmed<'a, Q>(&'a self, range: Q) -> impl Iterator + '_ + pub fn gaps_untrimmed<'a, Q>( + &'a self, + range: Q, + ) -> impl Iterator + '_ where Q: RangeType + 'a, { @@ -624,13 +627,11 @@ where // If the start or end point of range is not // contained within a range in the map then we need to // generate the gaps. - let start_gap = (!self - .inner - .contains_key(overlapping_comp(range.start()))) - .then(|| self.get_gap_at_raw(range.start())); - let end_gap = - (!self.inner.contains_key(overlapping_comp(range.end()))) - .then(|| self.get_gap_at_raw(range.end())); + let start_gap = + (!self.inner.contains_key(overlapping_comp(range.start()))) + .then(|| self.get_gap_at_raw(range.start())); + let end_gap = (!self.inner.contains_key(overlapping_comp(range.end()))) + .then(|| self.get_gap_at_raw(range.end())); let (start_gap, end_gap) = match (start_gap, end_gap) { (Some(start_gap), Some(end_gap)) => { @@ -642,12 +643,8 @@ where (Some(start_gap), Some(end_gap)) } } - (Some(start_gap), None) => { - (Some(start_gap), None) - } - (None, Some(end_gap)) => { - (None, Some(end_gap)) - } + (Some(start_gap), None) => (Some(start_gap), None), + (None, Some(end_gap)) => (None, Some(end_gap)), (None, None) => (None, None), }; @@ -673,12 +670,12 @@ where .chain(end_gap.map(K::from)); } - /// Returns an iterator of all the gaps in the map that overlap the given - /// `range` that are also trimmed so they are all fully contained within the - /// given `range`, in ascending order. - /// - /// See [`DiscreteRangeMap::gaps_untrimmed()`] if you do not want the - /// returned gaps to be trimmed. + /// Returns an iterator of all the gaps in the map that overlap the given + /// `range` that are also trimmed so they are all fully contained within the + /// given `range`, in ascending order. + /// + /// See [`DiscreteRangeMap::gaps_untrimmed()`] if you do not want the + /// returned gaps to be trimmed. /// /// # Panics /// @@ -688,7 +685,7 @@ where /// /// # Examples /// ``` - /// use discrete_range_map::inclusive_interval::{ie, iu, ii}; + /// use discrete_range_map::inclusive_interval::{ie, ii, iu}; /// use discrete_range_map::DiscreteRangeMap; /// /// let map = DiscreteRangeMap::from_slice_strict([ @@ -705,7 +702,10 @@ where /// [ie(4, 5), ie(7, 9), ii(100, 120)] /// ); /// ``` - pub fn gaps_trimmed<'a, Q>(&'a self, range: Q) -> impl Iterator + '_ + pub fn gaps_trimmed<'a, Q>( + &'a self, + range: Q, + ) -> impl Iterator + '_ where Q: RangeType + 'a, { @@ -714,13 +714,11 @@ where // If the start or end point of range is not // contained within a range in the map then we need to // generate the gaps. - let start_gap = (!self - .inner - .contains_key(overlapping_comp(range.start()))) - .then(|| self.get_gap_at_raw(range.start())); - let end_gap = - (!self.inner.contains_key(overlapping_comp(range.end()))) - .then(|| self.get_gap_at_raw(range.end())); + let start_gap = + (!self.inner.contains_key(overlapping_comp(range.start()))) + .then(|| self.get_gap_at_raw(range.start())); + let end_gap = (!self.inner.contains_key(overlapping_comp(range.end()))) + .then(|| self.get_gap_at_raw(range.end())); let (trimmed_start_gap, trimmed_end_gap) = match (start_gap, end_gap) { (Some(mut start_gap), Some(mut end_gap)) => { @@ -2020,7 +2018,11 @@ mod tests { assert_gaps_untrimmed(basic(), ii(50, 60), [iu(16)]); assert_gaps_untrimmed(basic(), iu(50), [iu(16)]); assert_gaps_untrimmed(basic(), ee(3, 16), [ei(4, 5), ee(7, 14)]); - assert_gaps_untrimmed(basic(), ei(3, 16), [ei(4, 5), ee(7, 14), iu(16)]); + assert_gaps_untrimmed( + basic(), + ei(3, 16), + [ei(4, 5), ee(7, 14), iu(16)], + ); assert_gaps_untrimmed(basic(), ue(5), []); assert_gaps_untrimmed(basic(), ui(3), []); assert_gaps_untrimmed(basic(), ii(5, 5), [ii(5, 5)]); @@ -2057,7 +2059,11 @@ mod tests { assert_gaps_trimmed(basic(), ii(50, 60), [ii(50, 60)]); assert_gaps_trimmed(basic(), iu(50), [iu(50)]); assert_gaps_trimmed(basic(), ee(3, 16), [ei(4, 5), ee(7, 14)]); - assert_gaps_trimmed(basic(), ei(3, 16), [ei(4, 5), ee(7, 14), ii(16, 16)]); + assert_gaps_trimmed( + basic(), + ei(3, 16), + [ei(4, 5), ee(7, 14), ii(16, 16)], + ); assert_gaps_trimmed(basic(), ue(5), []); assert_gaps_trimmed(basic(), ui(3), []); assert_gaps_trimmed(basic(), ii(5, 5), [ii(5, 5)]); diff --git a/src/discrete_range_set.rs b/src/discrete_range_set.rs index 361ae71..b951377 100644 --- a/src/discrete_range_set.rs +++ b/src/discrete_range_set.rs @@ -98,14 +98,20 @@ where self.inner.cut(range).map(first) } /// See [`DiscreteRangeMap::gaps_untrimmed()`] for more details. - pub fn gaps_untrimmed<'a, Q>(&'a self, range: Q) -> impl Iterator + '_ + pub fn gaps_untrimmed<'a, Q>( + &'a self, + range: Q, + ) -> impl Iterator + '_ where Q: RangeType + 'a, { self.inner.gaps_untrimmed(range) } /// See [`DiscreteRangeMap::gaps_trimmed()`] for more details. - pub fn gaps_trimmed<'a, Q>(&'a self, range: Q) -> impl Iterator + '_ + pub fn gaps_trimmed<'a, Q>( + &'a self, + range: Q, + ) -> impl Iterator + '_ where Q: RangeType + 'a, {