#[cfg(all(feature = "versioned", feature = "time"))]
mod zeitraum_impl {
use crate::generated::v202501::Zeitraum;
use time::Date;
impl Zeitraum {
#[must_use]
pub fn as_closed_range(&self) -> Option<(Date, Date)> {
Some((self.startdatum?, self.enddatum?))
}
#[must_use]
pub fn as_half_open_range(&self) -> Option<(Date, Option<Date>)> {
Some((self.startdatum?, self.enddatum))
}
}
}
#[cfg(all(feature = "versioned", feature = "time"))]
mod rechnung_impl {
use crate::generated::v202501::Rechnung;
use time::Date;
impl Rechnung {
#[must_use]
pub fn billing_period(&self) -> Option<(Date, Date)> {
self.rechnungsperiode.as_ref()?.as_closed_range()
}
}
}
#[cfg(all(feature = "versioned", feature = "time"))]
mod preisblatt_netznutzung_impl {
use crate::generated::v202501::PreisblattNetznutzung;
use time::Date;
impl PreisblattNetznutzung {
#[must_use]
pub fn validity(&self) -> Option<(Date, Option<Date>)> {
self.gueltigkeit.as_ref()?.as_half_open_range()
}
}
}