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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
use {Month, WeekDay};
pub trait Locale {
fn week_day(day: WeekDay, long_text: bool) -> &'static str;
fn month(month: Month, long_text: bool) -> &'static str;
}
pub struct EnglishLocale;
impl Locale for EnglishLocale {
fn week_day(day: WeekDay, long_text: bool) -> &'static str {
if long_text {
match day {
WeekDay::Monday => "Monday",
WeekDay::Tuesday => "Tuesday",
WeekDay::Wednesday => "Wednesday",
WeekDay::Thursday => "Thursday",
WeekDay::Friday => "Friday",
WeekDay::Saturday => "Saturday",
WeekDay::Sunday => "Sunday",
}
} else {
match day {
WeekDay::Monday => "Mo",
WeekDay::Tuesday => "Tu",
WeekDay::Wednesday => "We",
WeekDay::Thursday => "Th",
WeekDay::Friday => "Fr",
WeekDay::Saturday => "Sa",
WeekDay::Sunday => "Su",
}
}
}
fn month(month: Month, long_text: bool) -> &'static str {
if long_text {
match month {
Month::January => "January",
Month::February => "February",
Month::March => "March",
Month::April => "April",
Month::May => "May",
Month::June => "June",
Month::July => "July",
Month::August => "August",
Month::September => "September",
Month::October => "October",
Month::November => "November",
Month::December => "December",
}
} else {
match month {
Month::January => "Jan",
Month::February => "Feb",
Month::March => "Mar",
Month::April => "Apr",
Month::May => "May",
Month::June => "Jun",
Month::July => "Jul",
Month::August => "Aug",
Month::September => "Sep",
Month::October => "Oct",
Month::November => "Nov",
Month::December => "Dec",
}
}
}
}