mirror of
https://github.com/lennart-k/rustical.git
synced 2026-01-30 16:28:21 +00:00
calendar object: Move occurence methods to CalendarObjectComponent and add get_property method
This commit is contained in:
@@ -148,6 +148,34 @@ impl CalendarObjectComponent {
|
|||||||
}
|
}
|
||||||
Ok(Self::Journal(main_journal, overrides))
|
Ok(Self::Journal(main_journal, overrides))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_first_occurence(&self) -> Result<Option<CalDateTime>, Error> {
|
||||||
|
match &self {
|
||||||
|
Self::Event(main_event, overrides) => Ok(overrides
|
||||||
|
.iter()
|
||||||
|
.chain(std::iter::once(main_event))
|
||||||
|
.map(super::event::EventObject::get_dtstart)
|
||||||
|
.collect::<Result<Vec<_>, _>>()?
|
||||||
|
.into_iter()
|
||||||
|
.flatten()
|
||||||
|
.min()),
|
||||||
|
_ => Ok(None),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn get_last_occurence(&self) -> Result<Option<CalDateTime>, Error> {
|
||||||
|
match &self {
|
||||||
|
Self::Event(main_event, overrides) => Ok(overrides
|
||||||
|
.iter()
|
||||||
|
.chain(std::iter::once(main_event))
|
||||||
|
.map(super::event::EventObject::get_last_occurence)
|
||||||
|
.collect::<Result<Vec<_>, _>>()?
|
||||||
|
.into_iter()
|
||||||
|
.flatten()
|
||||||
|
.max()),
|
||||||
|
_ => Ok(None),
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
@@ -268,31 +296,11 @@ impl CalendarObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_first_occurence(&self) -> Result<Option<CalDateTime>, Error> {
|
pub fn get_first_occurence(&self) -> Result<Option<CalDateTime>, Error> {
|
||||||
match &self.data {
|
self.data.get_first_occurence()
|
||||||
CalendarObjectComponent::Event(main_event, overrides) => Ok(overrides
|
|
||||||
.iter()
|
|
||||||
.chain(std::iter::once(main_event))
|
|
||||||
.map(super::event::EventObject::get_dtstart)
|
|
||||||
.collect::<Result<Vec<_>, _>>()?
|
|
||||||
.into_iter()
|
|
||||||
.flatten()
|
|
||||||
.min()),
|
|
||||||
_ => Ok(None),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_last_occurence(&self) -> Result<Option<CalDateTime>, Error> {
|
pub fn get_last_occurence(&self) -> Result<Option<CalDateTime>, Error> {
|
||||||
match &self.data {
|
self.data.get_last_occurence()
|
||||||
CalendarObjectComponent::Event(main_event, overrides) => Ok(overrides
|
|
||||||
.iter()
|
|
||||||
.chain(std::iter::once(main_event))
|
|
||||||
.map(super::event::EventObject::get_last_occurence)
|
|
||||||
.collect::<Result<Vec<_>, _>>()?
|
|
||||||
.into_iter()
|
|
||||||
.flatten()
|
|
||||||
.max()),
|
|
||||||
_ => Ok(None),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn expand_recurrence(
|
pub fn expand_recurrence(
|
||||||
@@ -313,4 +321,11 @@ impl CalendarObject {
|
|||||||
_ => Ok(self.get_ics().to_string()),
|
_ => Ok(self.get_ics().to_string()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[must_use]
|
||||||
|
pub fn get_property(&self, name: &str) -> Option<&Property> {
|
||||||
|
self.properties
|
||||||
|
.iter()
|
||||||
|
.find(|property| property.name == name)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user