diff options
author | Ruben Pollan | 2018-11-27 10:26:54 -0600 |
---|---|---|
committer | Ruben Pollan | 2018-11-27 10:26:54 -0600 |
commit | ff727ea02ce5019d22f407ee872ead26479ffc2a (patch) | |
tree | da96b85f705412f806534cc43ed7e580a2c25544 /src/calendar.rs | |
parent | 0cdf83dab47458dfe1619c624931dd033a378548 (diff) |
Convert periodic into iterator
Diffstat (limited to '')
-rw-r--r-- | src/calendar.rs | 6 |
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 |