aboutsummaryrefslogtreecommitdiff
path: root/src/calendar.rs
diff options
context:
space:
mode:
authorRuben Pollan2018-11-27 10:26:54 -0600
committerRuben Pollan2018-11-27 10:26:54 -0600
commitff727ea02ce5019d22f407ee872ead26479ffc2a (patch)
treeda96b85f705412f806534cc43ed7e580a2c25544 /src/calendar.rs
parent0cdf83dab47458dfe1619c624931dd033a378548 (diff)
Convert periodic into iterator
Diffstat (limited to 'src/calendar.rs')
-rw-r--r--src/calendar.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/calendar.rs b/src/calendar.rs
index ab465ea..a835480 100644
--- a/src/calendar.rs
+++ b/src/calendar.rs
@@ -65,7 +65,11 @@ impl Calendar {
pub fn get(&self, first: &Date, last: &Date) -> Vec<Event> {
let mut events = event::get(&self.single, first, last).to_vec();
for p in &self.periodic {
- events.append(&mut p.get(first, last));
+ let mut p_events = p.iter()
+ .skip_while(|e| e.end_date() < *first)
+ .take_while(|e| e.start <= *last)
+ .collect();
+ events.append(&mut p_events);
}
events.sort_by_key(|k| k.start);
events