salati/models/
high_latitude_rule.rs1use clap::ValueEnum;
2
3use crate::astronomy::unit::Coordinates;
4use crate::constants::is_high_latitude;
5
6#[derive(PartialEq, Debug, Copy, Clone, ValueEnum)]
7pub enum HighLatitudeRule {
8 MiddleOfTheNight,
9 SeventhOfTheNight,
10 TwilightAngle,
11}
12
13impl Default for HighLatitudeRule {
14 fn default() -> HighLatitudeRule {
15 HighLatitudeRule::TwilightAngle
16 }
17}
18
19impl HighLatitudeRule {
20 pub fn recommended(coordinates: Coordinates) -> Self {
21 match is_high_latitude(coordinates, None) {
22 true => HighLatitudeRule::SeventhOfTheNight,
23 false => HighLatitudeRule::MiddleOfTheNight,
24 }
25 }
26}