use jiff::SignedDuration;
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct CalculatorConfig {
pub candle_lighting_offset: SignedDuration,
pub use_astronomical_chatzos_for_other_zmanim: bool,
pub use_elevation: bool,
pub ateret_torah_sunset_offset: SignedDuration,
pub use_astronomical_chatzos: bool,
}
impl Default for CalculatorConfig {
fn default() -> Self {
Self {
candle_lighting_offset: SignedDuration::from_mins(18),
use_astronomical_chatzos_for_other_zmanim: false,
use_elevation: false,
ateret_torah_sunset_offset: SignedDuration::from_mins(40),
use_astronomical_chatzos: true,
}
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for CalculatorConfig {
fn format(&self, fmt: defmt::Formatter) {
defmt::write!(
fmt,
"CalculatorConfig {{ candle_lighting_offset: {}, use_astronomical_chatzos_for_other_zmanim: {}, ateret_torah_sunset_offset: {}, use_astronomical_chatzos: {}, use_elevation: {} }}",
self.candle_lighting_offset.as_secs_f64(),
self.use_astronomical_chatzos_for_other_zmanim,
self.ateret_torah_sunset_offset.as_secs_f64(),
self.use_astronomical_chatzos,
self.use_elevation
)
}
}