whichtime_sys/dictionaries/
mod.rs1pub mod de;
10pub mod en;
11pub mod es;
12pub mod fr;
13pub mod it;
14pub mod ja;
15pub mod nl;
16pub mod pt;
17pub mod ru;
18pub mod sv;
19pub mod uk;
20pub mod zh;
21
22use std::str::FromStr;
23
24pub use crate::types::{TimeUnit, Weekday};
26
27#[derive(Debug, Clone, Copy, PartialEq, Eq)]
29pub enum CasualDateType {
30 Now,
32 Today,
34 Tonight,
36 Tomorrow,
38 Yesterday,
40 Overmorrow,
42 DayBeforeYesterday,
44 ThisMorning,
46 ThisAfternoon,
48 ThisEvening,
50}
51
52#[derive(Debug, Clone, Copy, PartialEq, Eq)]
54pub enum CasualTimeType {
55 Noon,
57 Midnight,
59 Morning,
61 Afternoon,
63 Evening,
65 Night,
67}
68
69#[derive(Debug, Clone, Copy, PartialEq, Eq)]
71pub enum RelativeModifier {
72 This,
74 Next,
76 Last,
78}
79
80#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
82pub enum Locale {
83 En,
85 De,
87 Es,
89 Fr,
91 It,
93 Ja,
95 Nl,
97 Pt,
99 Ru,
101 Sv,
103 Uk,
105 Zh,
107}
108
109impl FromStr for Locale {
110 type Err = crate::Error;
111 fn from_str(s: &str) -> Result<Self, Self::Err> {
113 match s.to_lowercase().as_str() {
114 "en" | "english" => Ok(Locale::En),
115 "de" | "german" | "deutsch" => Ok(Locale::De),
116 "es" | "spanish" | "español" => Ok(Locale::Es),
117 "fr" | "french" | "français" => Ok(Locale::Fr),
118 "it" | "italian" | "italiano" => Ok(Locale::It),
119 "ja" | "japanese" | "日本語" => Ok(Locale::Ja),
120 "nl" | "dutch" | "nederlands" => Ok(Locale::Nl),
121 "pt" | "portuguese" | "português" => Ok(Locale::Pt),
122 "ru" | "russian" | "русский" => Ok(Locale::Ru),
123 "sv" | "swedish" | "svenska" => Ok(Locale::Sv),
124 "uk" | "ukrainian" | "українська" => Ok(Locale::Uk),
125 "zh" | "chinese" | "中文" => Ok(Locale::Zh),
126 _ => Err(Self::Err::LocaleNotFound(s.to_string())),
127 }
128 }
129}