diff options
author | Nora <nora.widdecke@tu-bs.de> | 2019-03-27 14:43:34 +0100 |
---|---|---|
committer | Nora <nora.widdecke@tu-bs.de> | 2019-03-27 14:43:34 +0100 |
commit | ed4cc3097c36ec90aaeff721c33b55008947aeb4 (patch) | |
tree | 2538045a7d45694ef87249acc7e453aa796e437c /src/khevent.rs | |
parent | f53b677adbc70a1367c764979df4bf2303bf36f7 (diff) |
move duration handling to icalwrap/icalvcalendar
Diffstat (limited to 'src/khevent.rs')
-rw-r--r-- | src/khevent.rs | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/khevent.rs b/src/khevent.rs index 0ad7f33..5f6d499 100644 --- a/src/khevent.rs +++ b/src/khevent.rs @@ -24,21 +24,11 @@ impl KhEvent { } pub fn get_end(&self) -> Option<IcalTime> { + let dur = self.get_duration().unwrap(); if self.is_recur_instance() { - let dur = self.get_duration().unwrap(); - let dtend = self.instance_timestamp.clone().unwrap() + dur; - Some(dtend) + self.instance_timestamp.clone().map(|start| start + dur) } else { - match self.event.get_dtend() { - Some(dtend) => Some(dtend), - None => { - if self.get_start().unwrap().is_date() { - self.get_start().map(|start| start.succ()) - } else { - self.get_start() - } - } - } + self.get_start().clone().map(|start| start + dur) } } @@ -272,4 +262,14 @@ mod tests { assert_eq!(10, event.get_recur_instances().count()); } + #[test] + fn get_duration_test() { + let cal = IcalVCalendar::from_str(testdata::TEST_DTSTART_ONLY_DATE, None).unwrap(); + let event = cal.get_principal_khevent(); + assert!(event.is_allday()); + assert_eq!( + Some(IcalDuration::from_seconds(24 * 60 * 60)), + event.get_duration() + ); + } } |