some preparation for reccurence expansion

This commit is contained in:
Lennart
2025-06-03 17:48:07 +02:00
parent cf3e213894
commit 5a6ffd3c19
14 changed files with 278 additions and 817 deletions

View File

@@ -2,13 +2,33 @@ use chrono::{Local, NaiveDate, NaiveDateTime, TimeZone, Utc};
use chrono_tz::Tz;
use derive_more::{Display, From};
#[derive(Debug, Clone, From)]
#[derive(Debug, Clone, From, PartialEq, Eq)]
pub enum CalTimezone {
Local,
Utc,
Olson(Tz),
}
impl From<CalTimezone> for rrule::Tz {
fn from(value: CalTimezone) -> Self {
match value {
CalTimezone::Local => Self::LOCAL,
CalTimezone::Utc => Self::UTC,
CalTimezone::Olson(tz) => Self::Tz(tz),
}
}
}
impl From<rrule::Tz> for CalTimezone {
fn from(value: rrule::Tz) -> Self {
match value {
rrule::Tz::Local(_) => Self::Local,
rrule::Tz::Tz(chrono_tz::UTC) => Self::Utc,
rrule::Tz::Tz(tz) => Self::Olson(tz),
}
}
}
#[derive(Debug, Clone, PartialEq, Display)]
pub enum CalTimezoneOffset {
Local(chrono::FixedOffset),