use crate::Resolved;
use crate::data::YearFact;
use crate::raw_date::RawDate;
use crate::data::months;
pub(crate) const FIRST_YEAR: i32 = 2015;
pub(crate) const Y2015: YearFact = YearFact {
holidays: months! {
Mar: [18],
Apr: [13],
Jun: [1],
Jul: [17],
Sep: [23],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
pub(crate) const Y2016: YearFact = YearFact {
holidays: months! {
Mar: [18],
May: [2],
Jun: [20],
Jul: [6],
Sep: [11],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
pub(crate) const Y2017: YearFact = YearFact {
holidays: months! {
Mar: [18],
Apr: [17],
Jun: [5, 25],
Sep: [1],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
pub(crate) const Y2018: YearFact = YearFact {
holidays: months! {
Mar: [18],
Apr: [9],
May: [28],
Jun: [15],
Aug: [21],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
pub(crate) const Y2019: YearFact = YearFact {
holidays: months! {
Mar: [18],
Apr: [29],
Jun: [4, 17],
Aug: [11],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
pub(crate) const Y2020: YearFact = YearFact {
holidays: months! {
Mar: [18],
Apr: [20],
May: [24],
Jun: [8],
Jul: [31],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
pub(crate) const Y2021: YearFact = YearFact {
holidays: months! {
Mar: [18],
May: [3, 13],
Jun: [21],
Jul: [20],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
pub(crate) const Y2022: YearFact = YearFact {
holidays: months! {
Mar: [18],
Apr: [25],
May: [2],
Jun: [13],
Jul: [9],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
pub(crate) const Y2023: YearFact = YearFact {
holidays: months! {
Mar: [18],
Apr: [17, 21],
Jun: [5, 28],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
pub(crate) const Y2024: YearFact = YearFact {
holidays: months! {
Mar: [18],
Apr: [12],
May: [6],
Jun: [17, 24],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
pub(crate) const Y2025: YearFact = YearFact {
holidays: months! {
Mar: [18, 31],
Apr: [21],
Jun: [6, 9],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
pub(crate) const Y2026: YearFact = YearFact {
holidays: months! {
Mar: [18, 20],
Apr: [13],
May: [29],
Jun: [1],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
static YEARS: [YearFact; 12] = [
Y2015, Y2016, Y2017, Y2018, Y2019, Y2020, Y2021, Y2022, Y2023, Y2024, Y2025, Y2026,
];
static PREDICT: YearFact = YearFact {
holidays: months! {
Mar: [18],
},
extra_days_off: months! {},
working_days: months! {},
short_days: months! {},
transferred_days: months! {},
};
#[inline]
pub(crate) fn flags(date: RawDate) -> Resolved<crate::DayFlags> {
super::resolve(date, FIRST_YEAR, &YEARS, &PREDICT)
}