From 6308fa39f1724c1ed1b995243b21c163280e82f5 Mon Sep 17 00:00:00 2001 From: ripytide Date: Sat, 22 Apr 2023 14:30:28 +0100 Subject: [PATCH] fixed bug --- src/utils.rs | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/utils.rs b/src/utils.rs index 221fd66..62a9e48 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -19,8 +19,8 @@ along with discrete_range_map. If not, see . use std::cmp::Ordering; -use crate::discrete_finite_bounds::DiscreteFiniteBounds; use crate::discrete_finite::DiscreteFinite; +use crate::discrete_finite_bounds::DiscreteFiniteBounds; use crate::discrete_range_map::FiniteRange; pub(crate) fn cmp_point_with_range(point: I, range: K) -> Ordering @@ -94,8 +94,12 @@ where Config::LeftFirstPartialOverlap => SortedConfig::Swallowed(ae, be), Config::LeftContainsRight => SortedConfig::Swallowed(ae, be), - Config::RightFirstNonOverlapping => SortedConfig::NonOverlapping(be, ae), - Config::RightFirstPartialOverlap => SortedConfig::PartialOverlap(be, ae), + Config::RightFirstNonOverlapping => { + SortedConfig::NonOverlapping(be, ae) + } + Config::RightFirstPartialOverlap => { + SortedConfig::PartialOverlap(be, ae) + } Config::RightContainsLeft => SortedConfig::Swallowed(be, ae), } } @@ -152,10 +156,14 @@ where start: cut.start(), end: cut.end(), }); - result.after_cut = Some(DiscreteFiniteBounds { - start: cut.end().up().unwrap(), - end: base.end(), - }); + //if cut is already max then we don't need to have an + //after_cut + if let Some(upped_end) = cut.end().up() { + result.after_cut = Some(DiscreteFiniteBounds { + start: upped_end, + end: base.end(), + }); + } } Config::RightFirstNonOverlapping => {