summaryrefslogtreecommitdiffstats
path: root/src/khevent.rs
diff options
context:
space:
mode:
authorNora <nora.widdecke@tu-bs.de>2019-03-27 14:43:34 +0100
committerNora <nora.widdecke@tu-bs.de>2019-03-27 14:43:34 +0100
commited4cc3097c36ec90aaeff721c33b55008947aeb4 (patch)
tree2538045a7d45694ef87249acc7e453aa796e437c /src/khevent.rs
parentf53b677adbc70a1367c764979df4bf2303bf36f7 (diff)
move duration handling to icalwrap/icalvcalendar
Diffstat (limited to 'src/khevent.rs')
-rw-r--r--src/khevent.rs26
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()
+ );
+ }
}