pub const RU_WEEKDAY_MAPPINGS: &[(&str, &str)] = &[
("Понедельник", "Monday"),
("Вторник", "Tuesday"),
("Среда", "Wednesday"),
("Четверг", "Thursday"),
("Пятница", "Friday"),
("Суббота", "Saturday"),
("Воскресенье", "Sunday"),
("Пн", "Mon"),
("Вт", "Tue"),
("Ср", "Wed"),
("Чт", "Thu"),
("Пт", "Fri"),
("Сб", "Sat"),
("Вс", "Sun"),
];
pub const SUPPORTED_LOCALES: &[&str] = &["ru", "en"];
pub fn get_weekday_mappings(locale: &str) -> Vec<(&'static str, &'static str)> {
let mut mappings = Vec::new();
for loc in locale.split(',') {
if loc.trim() == "ru" {
mappings.extend_from_slice(RU_WEEKDAY_MAPPINGS);
}
}
mappings
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_get_weekday_mappings_ru() {
let mappings = get_weekday_mappings("ru");
assert!(mappings.contains(&("Понедельник", "Monday")));
assert!(mappings.contains(&("Пн", "Mon")));
}
#[test]
fn test_get_weekday_mappings_multiple() {
let mappings = get_weekday_mappings("ru,en");
assert!(mappings.contains(&("Понедельник", "Monday")));
}
#[test]
fn get_weekday_mappings_ru_matches_static_table() {
let mappings = get_weekday_mappings("ru");
assert_eq!(mappings.as_slice(), RU_WEEKDAY_MAPPINGS);
}
#[test]
fn test_get_weekday_mappings_empty() {
let mappings = get_weekday_mappings("en");
assert!(mappings.is_empty());
}
}