summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcos <cos>2021-07-01 23:32:47 +0200
committercos <cos>2021-07-01 23:32:49 +0200
commit31a040cb115bfe31a4ab2485e1af06624d652861 (patch)
treedd71985d1974956b4fb02b1fc51eec870fecd47a /src
parent921c18a36011a86610a7618753f307c7ed49752e (diff)
downloadrust_rrule-31a040cb115bfe31a4ab2485e1af06624d652861.zip
Bugfix for RRule{after, before} edge casesfix/correct_rrule_inclusive_criterias
Corrects implementation to work according to documenated (and reasonable) behaviour. Also adds some test cases to cover these functions.
Diffstat (limited to 'src')
-rw-r--r--src/rrule.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/rrule.rs b/src/rrule.rs
index 1d95fe9..71f7e47 100644
--- a/src/rrule.rs
+++ b/src/rrule.rs
@@ -33,7 +33,7 @@ impl RRule {
/// With inc == true, if dt itself is an recurrence, it will be returned.
pub fn after(&self, dt: DateTime<Tz>, inc: bool) -> Option<DateTime<Tz>> {
self.into_iter()
- .skip_while(|d| if inc { *d <= dt } else { *d < dt })
+ .skip_while(|d| if inc { *d < dt } else { *d <= dt })
.next()
}
@@ -48,7 +48,7 @@ impl RRule {
inc: bool,
) -> Vec<DateTime<Tz>> {
self.into_iter()
- .skip_while(|d| if inc { *d <= after } else { *d < after })
+ .skip_while(|d| if inc { *d < after } else { *d <= after })
.take_while(|d| if inc { *d <= before } else { *d < before })
.collect()
}