use crate::describe::Language;
#[derive(Default, Clone, Copy)]
pub struct English;
impl Language for English {
fn every_minute(&self) -> &'static str {
"Every minute"
}
fn every_second_phrase(&self) -> &'static str {
"Every second"
}
fn every_x_minutes(&self, s: u16) -> String {
format!("every {s} minutes")
}
fn every_x_seconds(&self, s: u16) -> String {
format!("every {s} seconds")
}
fn every_x_hours(&self, s: u16) -> String {
format!("of every {s} hours")
}
fn every_minute_of_every_x_hours(&self, s: u16) -> String {
format!("Every minute, of every {s} hours")
}
fn at_time(&self, time: &str) -> String {
format!("At {time}")
}
fn at_time_and_every_x_seconds(&self, time: &str, step: u16) -> String {
format!("At {time}, every {step} seconds")
}
fn at_time_at_second(&self, time: &str, second: &str) -> String {
format!("At {time}, at second {second}")
}
fn at_phrase(&self, phrase: &str) -> String {
format!("At {phrase}")
}
fn on_phrase(&self, phrase: &str) -> String {
format!("on {phrase}")
}
fn in_phrase(&self, phrase: &str) -> String {
format!("in {phrase}")
}
fn second_phrase(&self, s: &str) -> String {
format!("second {s}")
}
fn minute_phrase(&self, s: &str) -> String {
format!("minute {s}")
}
fn minute_past_every_hour_phrase(&self, s: &str) -> String {
format!("{s} past every hour")
}
fn hour_phrase(&self, s: &str) -> String {
format!("of hour {s}")
}
fn year_phrase(&self, s: &str) -> String {
format!("year {s}")
}
fn day_phrase(&self, s: &str) -> String {
format!("day {s}")
}
fn the_last_day_of_the_month(&self) -> &'static str {
"the last day of the month"
}
fn the_weekday_nearest_day(&self, day: &str) -> String {
format!("the weekday nearest day {day}")
}
fn the_last_weekday_of_the_month(&self, day: &str) -> String {
format!("the last {day} of the month")
}
fn the_nth_weekday_of_the_month(&self, n: u8, day: &str) -> String {
let suffix = match n {
1 => "st",
2 => "nd",
3 => "rd",
_ => "th",
};
let num_str = format!("{n}{suffix}");
format!("the {num_str} {day} of the month")
}
fn dom_and_dow_if_also(&self, dow: &str) -> String {
format!("(if it is also {dow})")
}
fn dom_and_dow_if_also_one_of(&self, dow: &str) -> String {
format!("(if it is also one of: {dow})")
}
fn list_conjunction_and(&self) -> &'static str {
"and"
}
fn list_conjunction_or(&self) -> &'static str {
"or"
}
fn list_conjunction_and_comma(&self) -> &'static str {
", and"
}
fn day_of_week_names(&self) -> [&'static str; 7] {
[
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
]
}
fn month_names(&self) -> [&'static str; 12] {
[
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
]
}
}