mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-13 22:52:22 +00:00
Add get_recurrence_rule method to EventObject
This commit is contained in:
@@ -1,9 +1,12 @@
|
|||||||
use super::{parse_duration, CalDateTime};
|
use super::{
|
||||||
|
CalDateTime, parse_duration,
|
||||||
|
rrule::{ParserError, RecurrenceRule},
|
||||||
|
};
|
||||||
use crate::Error;
|
use crate::Error;
|
||||||
use chrono::Duration;
|
use chrono::Duration;
|
||||||
use ical::{
|
use ical::{
|
||||||
generator::IcalEvent,
|
generator::IcalEvent,
|
||||||
parser::{ical::component::IcalTimeZone, Component},
|
parser::{Component, ical::component::IcalTimeZone},
|
||||||
property::Property,
|
property::Property,
|
||||||
};
|
};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
@@ -46,4 +49,23 @@ impl EventObject {
|
|||||||
let first_occurence = self.get_first_occurence()?;
|
let first_occurence = self.get_first_occurence()?;
|
||||||
Ok(first_occurence.map(|first_occurence| first_occurence + duration))
|
Ok(first_occurence.map(|first_occurence| first_occurence + duration))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn recurrence_rule(&self) -> Result<Option<RecurrenceRule>, ParserError> {
|
||||||
|
let rrule = if let Some(&Property {
|
||||||
|
value: Some(rrule), ..
|
||||||
|
}) = self.event.get_property("RRULE").as_ref()
|
||||||
|
{
|
||||||
|
rrule
|
||||||
|
} else {
|
||||||
|
return Ok(None);
|
||||||
|
};
|
||||||
|
RecurrenceRule::parse(rrule).map(Some)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn expand_recurrence(&self) -> Result<(), Error> {
|
||||||
|
let rrule = self.event.get_property("RRULE").unwrap();
|
||||||
|
dbg!(rrule);
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user