use super::*;
impl fmt::Display for Lang {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let lang_str: &str = match self {
Lang::EnUsUtf8 => LANG_EN_US_NAME,
Lang::ZhCnUtf8 => LANG_ZH_CN_NAME,
Lang::FrFrUtf8 => LANG_FR_FR_NAME,
Lang::DeDeUtf8 => LANG_DE_DE_NAME,
Lang::EsEsUtf8 => LANG_ES_ES_NAME,
Lang::ItItUtf8 => LANG_IT_IT_NAME,
Lang::JaJpUtf8 => LANG_JA_JP_NAME,
Lang::KoKrUtf8 => LANG_KO_KR_NAME,
Lang::PtPtUtf8 => LANG_PT_PT_NAME,
Lang::RuRuUtf8 => LANG_RU_RU_NAME,
Lang::ArSaUtf8 => LANG_AR_SA_NAME,
Lang::HiInUtf8 => LANG_HI_IN_NAME,
Lang::ThThUtf8 => LANG_TH_TH_NAME,
Lang::ViVnUtf8 => LANG_VI_VN_NAME,
Lang::NlNlUtf8 => LANG_NL_NL_NAME,
Lang::SvSeUtf8 => LANG_SV_SE_NAME,
Lang::FiFiUtf8 => LANG_FI_FI_NAME,
};
write!(f, "{lang_str}")
}
}
impl Lang {
pub fn value(&self) -> u64 {
match self {
Lang::EnUsUtf8 => 0, Lang::ZhCnUtf8 => 28800, Lang::FrFrUtf8 => 3600, Lang::DeDeUtf8 => 3600, Lang::EsEsUtf8 => 3600, Lang::ItItUtf8 => 3600, Lang::JaJpUtf8 => 32400, Lang::KoKrUtf8 => 32400, Lang::PtPtUtf8 => 3600, Lang::RuRuUtf8 => 10800, Lang::ArSaUtf8 => 10800, Lang::HiInUtf8 => 19800, Lang::ThThUtf8 => 25200, Lang::ViVnUtf8 => 25200, Lang::NlNlUtf8 => 3600, Lang::SvSeUtf8 => 3600, Lang::FiFiUtf8 => 3600, }
}
}
impl FromStr for Lang {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
LANG_EN_US_LOCALE => Ok(Lang::EnUsUtf8),
LANG_ZH_CN_LOCALE => Ok(Lang::ZhCnUtf8),
LANG_FR_FR_LOCALE => Ok(Lang::FrFrUtf8),
LANG_DE_DE_LOCALE => Ok(Lang::DeDeUtf8),
LANG_ES_ES_LOCALE => Ok(Lang::EsEsUtf8),
LANG_IT_IT_LOCALE => Ok(Lang::ItItUtf8),
LANG_JA_JP_LOCALE => Ok(Lang::JaJpUtf8),
LANG_KO_KR_LOCALE => Ok(Lang::KoKrUtf8),
LANG_PT_PT_LOCALE => Ok(Lang::PtPtUtf8),
LANG_RU_RU_LOCALE => Ok(Lang::RuRuUtf8),
LANG_AR_SA_LOCALE => Ok(Lang::ArSaUtf8),
LANG_HI_IN_LOCALE => Ok(Lang::HiInUtf8),
LANG_TH_TH_LOCALE => Ok(Lang::ThThUtf8),
LANG_VI_VN_LOCALE => Ok(Lang::ViVnUtf8),
LANG_NL_NL_LOCALE => Ok(Lang::NlNlUtf8),
LANG_SV_SE_LOCALE => Ok(Lang::SvSeUtf8),
LANG_FI_FI_LOCALE => Ok(Lang::FiFiUtf8),
_ => Err(()),
}
}
}