lightspeed_core 0.66.0

LightSpeed
Documentation
use crate::error::LsError;
use serde::{Deserialize, Serialize};
use std::str::FromStr;
use strum::{AsRefStr, Display, EnumIter};

#[derive(Clone, Debug, Display, EnumIter, AsRefStr, Serialize, Deserialize, PartialEq, Eq, Hash)]
pub enum Language {
    De,
    En,
    Es,
    Fr,
    It,
}

impl FromStr for Language {
    type Err = LsError;

    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(LsError::ConfigurationError { message: format!("Could not parse language [{language}]") }),
        }
    }
}