1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use crate::error::LightSpeedError;
use serde::{Deserialize, Serialize};
use std::str::FromStr;
use strum::{AsRefStr, Display, EnumIter};
use typescript_definitions::TypeScriptify;
#[derive(Clone, Debug, Display, EnumIter, AsRefStr, Serialize, Deserialize, PartialEq, Eq, Hash, TypeScriptify)]
#[allow(non_camel_case_types)]
pub enum Language {
DE,
EN,
ES,
FR,
IT,
}
impl FromStr for Language {
type Err = LightSpeedError;
fn from_str(language: &str) -> Result<Self, Self::Err> {
match language.to_lowercase().as_ref() {
"de" => Ok(Language::DE),
"en" => Ok(Language::EN),
"es" => Ok(Language::ES),
"fr" => Ok(Language::FR),
"it" => Ok(Language::IT),
_ => {
Err(LightSpeedError::ConfigurationError { message: format!("Could not parse language [{}]", language) })
}
}
}
}