Shared Rust kernels
format/names
All modules · quoted at commit 9e1884369a67 of DnaCalc/DnaCalc. Comments are the source's own.
month_name · 31 lines · calc-func/src/format/names.rs on GitHubpub(crate) fn month_name(profile: &FormatProfile, month: i64, abbreviated: bool, tagged: bool) -> String {
let Ok(index) = usize::try_from(month - 1) else {
return String::new();
};
// Fn1 and fn3 measure names under explicit format tags. These tagged forms
// differ from the locale data's ordinary abbreviations.
if tagged && profile.id == LocaleId::DeDe && month == 3 && abbreviated {
return "Mrz".to_owned();
}
let names = locale_names(profile.id);
if tagged && abbreviated {
match profile.id {
LocaleId::JaJp => return names.months_short.get(index)
.map(|_| month.to_string()).unwrap_or_default(),
LocaleId::RuRu => return names.months_long.get(index).copied().unwrap_or("")
.chars().take(3).collect(),
_ => {}
}
}
let name = if abbreviated {
names.months_short.get(index).copied().unwrap_or("")
} else {
names.months_long.get(index).copied().unwrap_or("")
};
if tagged && profile.id == LocaleId::RuRu {
let mut chars = name.chars();
chars.next().map(|first| first.to_uppercase().chain(chars).collect()).unwrap_or_default()
} else {
name.to_owned()
}
}
Used by 18 functions.
weekday_name · 14 lines · calc-func/src/format/names.rs on GitHubpub(crate) fn weekday_name(profile: &FormatProfile, index: usize, abbreviated: bool, tagged: bool) -> String {
let names = locale_names(profile.id);
let name = if abbreviated {
names.weekdays_short.get(index).copied().unwrap_or("")
} else {
names.weekdays_long.get(index).copied().unwrap_or("")
};
if tagged && abbreviated && profile.id == LocaleId::RuRu {
let mut chars = name.chars();
chars.next().map(|first| first.to_uppercase().chain(chars).collect()).unwrap_or_default()
} else {
name.to_owned()
}
}
Used by 18 functions.
locale_names · 35 lines · calc-func/src/format/names.rs on GitHubfn locale_names(id: LocaleId) -> &'static LocaleNames {
match id {
LocaleId::EnUs => &EN_US,
LocaleId::EnGb => &EN_GB,
LocaleId::EnIe => &EN_IE,
LocaleId::EnAu => &EN_AU,
LocaleId::EnNz => &EN_NZ,
LocaleId::EnZa => &EN_ZA,
LocaleId::EnIn => &EN_IN,
LocaleId::EnCa => &EN_CA,
LocaleId::EnPh => &EN_PH,
LocaleId::DeDe => &DE_DE,
LocaleId::RuRu => &RU_RU,
LocaleId::FiFi => &FI_FI,
LocaleId::EtEe => &ET_EE,
LocaleId::LvLv => &LV_LV,
LocaleId::LtLt => <_LT,
LocaleId::SkSk => &SK_SK,
LocaleId::CsCz => &CS_CZ,
LocaleId::NbNo => &NB_NO,
LocaleId::NnNo => &NN_NO,
LocaleId::FrFr => &FR_FR,
LocaleId::EsEs => &ES_ES,
LocaleId::PtPt => &PT_PT,
LocaleId::ItIt => &IT_IT,
LocaleId::NlNl => &NL_NL,
LocaleId::PlPl => &PL_PL,
LocaleId::PtBr => &PT_BR,
LocaleId::JaJp => &JA_JP,
LocaleId::KoKr => &KO_KR,
LocaleId::ZhCn => &ZH_CN,
LocaleId::HuHu => &HU_HU,
LocaleId::CurrentExcelHost => &EN_US,
}
}
Used by 18 functions.