pub mod de;
pub mod en;
pub mod es;
pub mod fr;
pub mod it;
pub mod ja;
pub mod nl;
pub mod pt;
pub mod ru;
pub mod sv;
pub mod uk;
pub mod zh;
use std::str::FromStr;
pub use crate::types::{TimeUnit, Weekday};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum CasualDateType {
Now,
Today,
Tonight,
Tomorrow,
Yesterday,
Overmorrow,
DayBeforeYesterday,
ThisMorning,
ThisAfternoon,
ThisEvening,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum CasualTimeType {
Noon,
Midnight,
Morning,
Afternoon,
Evening,
Night,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RelativeModifier {
This,
Next,
Last,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum Locale {
En,
De,
Es,
Fr,
It,
Ja,
Nl,
Pt,
Ru,
Sv,
Uk,
Zh,
}
impl FromStr for Locale {
type Err = crate::Error;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.to_lowercase().as_str() {
"en" | "english" => Ok(Locale::En),
"de" | "german" | "deutsch" => Ok(Locale::De),
"es" | "spanish" | "español" => Ok(Locale::Es),
"fr" | "french" | "français" => Ok(Locale::Fr),
"it" | "italian" | "italiano" => Ok(Locale::It),
"ja" | "japanese" | "日本語" => Ok(Locale::Ja),
"nl" | "dutch" | "nederlands" => Ok(Locale::Nl),
"pt" | "portuguese" | "português" => Ok(Locale::Pt),
"ru" | "russian" | "русский" => Ok(Locale::Ru),
"sv" | "swedish" | "svenska" => Ok(Locale::Sv),
"uk" | "ukrainian" | "українська" => Ok(Locale::Uk),
"zh" | "chinese" | "中文" => Ok(Locale::Zh),
_ => Err(Self::Err::LocaleNotFound(s.to_string())),
}
}
}