use super::time::Seconds;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct TimeZoneVariantInfo {
pub name: String,
pub offset: Seconds,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct TransitionDate {
pub day: TransitionDay,
pub time: Seconds,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum TransitionDay {
NoLeap(u16),
WithLeap(u16),
Mwd(u16, u16, u16),
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct DstTransitionInfo {
pub variant_info: TimeZoneVariantInfo,
pub start_date: TransitionDate,
pub end_date: TransitionDate,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct PosixTzString {
pub std_info: TimeZoneVariantInfo,
pub dst_info: Option<DstTransitionInfo>,
}