#[repr(u8)]pub enum Weekday {
Sunday = 1,
Monday = 2,
Tuesday = 3,
Wednesday = 4,
Thursday = 5,
Friday = 6,
Saturday = 7,
}Expand description
Day of the week
Variants§
Implementations§
Source§impl Weekday
impl Weekday
Sourcepub const ALL: [Weekday; 7]
pub const ALL: [Weekday; 7]
assert_eq!(Weekday::ALL[0], Weekday::Sunday);
assert_eq!(Weekday::ALL[1], Weekday::Monday);
assert_eq!(Weekday::ALL[2], Weekday::Tuesday);
assert_eq!(Weekday::ALL[3], Weekday::Wednesday);
assert_eq!(Weekday::ALL[4], Weekday::Thursday);
assert_eq!(Weekday::ALL[5], Weekday::Friday);
assert_eq!(Weekday::ALL[6], Weekday::Saturday);Sourcepub const fn new(weekday: u8) -> Self
pub const fn new(weekday: u8) -> Self
assert_eq!(Weekday::new(1), Weekday::Sunday);
assert_eq!(Weekday::new(2), Weekday::Monday);
assert_eq!(Weekday::new(3), Weekday::Tuesday);
assert_eq!(Weekday::new(4), Weekday::Wednesday);
assert_eq!(Weekday::new(5), Weekday::Thursday);
assert_eq!(Weekday::new(6), Weekday::Friday);
assert_eq!(Weekday::new(7), Weekday::Saturday);Weekday::new(0);Weekday::new(8);Sourcepub const unsafe fn new_unchecked(weekday: u8) -> Self
pub const unsafe fn new_unchecked(weekday: u8) -> Self
unsafe {
assert_eq!(Weekday::new_unchecked(1), Weekday::Sunday);
assert_eq!(Weekday::new_unchecked(2), Weekday::Monday);
assert_eq!(Weekday::new_unchecked(3), Weekday::Tuesday);
assert_eq!(Weekday::new_unchecked(4), Weekday::Wednesday);
assert_eq!(Weekday::new_unchecked(5), Weekday::Thursday);
assert_eq!(Weekday::new_unchecked(6), Weekday::Friday);
assert_eq!(Weekday::new_unchecked(7), Weekday::Saturday);
}§Safety
weekday must be 1..=7.
// ⚠️ Undefined behavior.
// Will panic on debug.
unsafe { Weekday::new_unchecked(8) };Sourcepub const fn inner(self) -> u8
pub const fn inner(self) -> u8
assert_eq!(Weekday::Sunday.inner(), 1);
assert_eq!(Weekday::Monday.inner(), 2);
assert_eq!(Weekday::Tuesday.inner(), 3);
assert_eq!(Weekday::Wednesday.inner(), 4);
assert_eq!(Weekday::Thursday.inner(), 5);
assert_eq!(Weekday::Friday.inner(), 6);
assert_eq!(Weekday::Saturday.inner(), 7);Sourcepub const fn new_saturating(weekday: u8) -> Self
pub const fn new_saturating(weekday: u8) -> Self
assert_eq!(Weekday::new_saturating(1), Weekday::Sunday);
assert_eq!(Weekday::new_saturating(2), Weekday::Monday);
assert_eq!(Weekday::new_saturating(3), Weekday::Tuesday);
assert_eq!(Weekday::new_saturating(4), Weekday::Wednesday);
assert_eq!(Weekday::new_saturating(5), Weekday::Thursday);
assert_eq!(Weekday::new_saturating(6), Weekday::Friday);
assert_eq!(Weekday::new_saturating(7), Weekday::Saturday);assert_eq!(Weekday::new_saturating(0), Weekday::Sunday);assert_eq!(Weekday::new_saturating(7), Weekday::Saturday);
assert_eq!(Weekday::new_saturating(8), Weekday::Saturday);
assert_eq!(Weekday::new_saturating(9), Weekday::Saturday);Sourcepub const fn new_wrapping(weekday: u8) -> Self
pub const fn new_wrapping(weekday: u8) -> Self
// Wraps to Saturday.
assert_eq!(Weekday::new_wrapping(0), Weekday::Saturday);
assert_eq!(Weekday::new_wrapping(1), Weekday::Sunday);
assert_eq!(Weekday::new_wrapping(2), Weekday::Monday);
assert_eq!(Weekday::new_wrapping(3), Weekday::Tuesday);
assert_eq!(Weekday::new_wrapping(4), Weekday::Wednesday);
assert_eq!(Weekday::new_wrapping(5), Weekday::Thursday);
assert_eq!(Weekday::new_wrapping(6), Weekday::Friday);
assert_eq!(Weekday::new_wrapping(7), Weekday::Saturday);
// Wraps to Sunday, Monday, etc
assert_eq!(Weekday::new_wrapping(8), Weekday::Sunday);
assert_eq!(Weekday::new_wrapping(9), Weekday::Monday);
assert_eq!(Weekday::new_wrapping(10), Weekday::Tuesday);
assert_eq!(Weekday::new_wrapping(11), Weekday::Wednesday);
assert_eq!(Weekday::new_wrapping(12), Weekday::Thursday);
assert_eq!(Weekday::new_wrapping(13), Weekday::Friday);
assert_eq!(Weekday::new_wrapping(14), Weekday::Saturday);Sourcepub const fn next_saturating(self) -> Self
pub const fn next_saturating(self) -> Self
Get the next Self, saturating if we’re at Self::LAST
Sourcepub const fn next_wrapping(self) -> Self
pub const fn next_wrapping(self) -> Self
Get the next Self, wrapping if we’re at Self::LAST
Sourcepub const fn previous_saturating(self) -> Self
pub const fn previous_saturating(self) -> Self
Get the previous Self, saturating if we’re at Self::FIRST
Sourcepub const fn previous_wrapping(self) -> Self
pub const fn previous_wrapping(self) -> Self
Get the previous Self, wrapping if we’re at Self::FIRST
Sourcepub const fn add_saturating(self, rhs: u8) -> Self
pub const fn add_saturating(self, rhs: u8) -> Self
Add onto Self, saturating if we’re at Self::LAST
Sourcepub const fn sub_saturating(self, rhs: u8) -> Self
pub const fn sub_saturating(self, rhs: u8) -> Self
Subtract from Self, saturating if we’re at Self::FIRST
Sourcepub const fn add_wrapping(self, rhs: u8) -> Self
pub const fn add_wrapping(self, rhs: u8) -> Self
Add onto Self, wrapping if we’re at Self::LAST
Sourcepub const fn sub_wrapping(self, rhs: u8) -> Self
pub const fn sub_wrapping(self, rhs: u8) -> Self
Subtract from Self, wrapping if we’re at Self::FIRST
Sourcepub const fn as_str(self) -> &'static str
pub const fn as_str(self) -> &'static str
assert_eq!(Weekday::Sunday.as_str(), "Sunday");
assert_eq!(Weekday::Monday.as_str(), "Monday");
assert_eq!(Weekday::Tuesday.as_str(), "Tuesday");
assert_eq!(Weekday::Wednesday.as_str(), "Wednesday");
assert_eq!(Weekday::Thursday.as_str(), "Thursday");
assert_eq!(Weekday::Friday.as_str(), "Friday");
assert_eq!(Weekday::Saturday.as_str(), "Saturday");Sourcepub const fn as_str_lower(self) -> &'static str
pub const fn as_str_lower(self) -> &'static str
assert_eq!(Weekday::Sunday.as_str_lower(), "sunday");
assert_eq!(Weekday::Monday.as_str_lower(), "monday");
assert_eq!(Weekday::Tuesday.as_str_lower(), "tuesday");
assert_eq!(Weekday::Wednesday.as_str_lower(), "wednesday");
assert_eq!(Weekday::Thursday.as_str_lower(), "thursday");
assert_eq!(Weekday::Friday.as_str_lower(), "friday");
assert_eq!(Weekday::Saturday.as_str_lower(), "saturday");Sourcepub const fn as_str_upper(self) -> &'static str
pub const fn as_str_upper(self) -> &'static str
assert_eq!(Weekday::Sunday.as_str_upper(), "SUNDAY");
assert_eq!(Weekday::Monday.as_str_upper(), "MONDAY");
assert_eq!(Weekday::Tuesday.as_str_upper(), "TUESDAY");
assert_eq!(Weekday::Wednesday.as_str_upper(), "WEDNESDAY");
assert_eq!(Weekday::Thursday.as_str_upper(), "THURSDAY");
assert_eq!(Weekday::Friday.as_str_upper(), "FRIDAY");
assert_eq!(Weekday::Saturday.as_str_upper(), "SATURDAY");Sourcepub const fn as_str_short(self) -> &'static str
pub const fn as_str_short(self) -> &'static str
assert_eq!(Weekday::Sunday.as_str_short(), "Sun");
assert_eq!(Weekday::Monday.as_str_short(), "Mon");
assert_eq!(Weekday::Tuesday.as_str_short(), "Tue");
assert_eq!(Weekday::Wednesday.as_str_short(), "Wed");
assert_eq!(Weekday::Thursday.as_str_short(), "Thu");
assert_eq!(Weekday::Friday.as_str_short(), "Fri");
assert_eq!(Weekday::Saturday.as_str_short(), "Sat");Sourcepub const fn as_str_short_lower(self) -> &'static str
pub const fn as_str_short_lower(self) -> &'static str
assert_eq!(Weekday::Sunday.as_str_short_lower(), "sun");
assert_eq!(Weekday::Monday.as_str_short_lower(), "mon");
assert_eq!(Weekday::Tuesday.as_str_short_lower(), "tue");
assert_eq!(Weekday::Wednesday.as_str_short_lower(), "wed");
assert_eq!(Weekday::Thursday.as_str_short_lower(), "thu");
assert_eq!(Weekday::Friday.as_str_short_lower(), "fri");
assert_eq!(Weekday::Saturday.as_str_short_lower(), "sat");Sourcepub const fn as_str_short_upper(self) -> &'static str
pub const fn as_str_short_upper(self) -> &'static str
assert_eq!(Weekday::Sunday.as_str_short_upper(), "SUN");
assert_eq!(Weekday::Monday.as_str_short_upper(), "MON");
assert_eq!(Weekday::Tuesday.as_str_short_upper(), "TUE");
assert_eq!(Weekday::Wednesday.as_str_short_upper(), "WED");
assert_eq!(Weekday::Thursday.as_str_short_upper(), "THU");
assert_eq!(Weekday::Friday.as_str_short_upper(), "FRI");
assert_eq!(Weekday::Saturday.as_str_short_upper(), "SAT");Sourcepub const fn as_str_jp(self) -> &'static str
pub const fn as_str_jp(self) -> &'static str
assert_eq!(Weekday::Sunday.as_str_jp(), "日曜日");
assert_eq!(Weekday::Monday.as_str_jp(), "月曜日");
assert_eq!(Weekday::Tuesday.as_str_jp(), "火曜日");
assert_eq!(Weekday::Wednesday.as_str_jp(), "水曜日");
assert_eq!(Weekday::Thursday.as_str_jp(), "木曜日");
assert_eq!(Weekday::Friday.as_str_jp(), "金曜日");
assert_eq!(Weekday::Saturday.as_str_jp(), "土曜日");Sourcepub const fn from_str(s: &str) -> Option<Self>
pub const fn from_str(s: &str) -> Option<Self>
Create a Weekday by parsing a &str
A valid input string can either be the first 3 letters of the day (returned from Weekday::as_str_short)
or the full weekday (returned from Weekday::as_str).
These cases are covered:
lowercaseUPPERCASE
For example:
assert_eq!(Weekday::from_str("SUN").unwrap(), Weekday::Sunday);
assert_eq!(Weekday::from_str("Sun").unwrap(), Weekday::Sunday);
assert_eq!(Weekday::from_str("sun").unwrap(), Weekday::Sunday);
assert_eq!(Weekday::from_str("SUNDAY").unwrap(), Weekday::Sunday);
assert_eq!(Weekday::from_str("Sunday").unwrap(), Weekday::Sunday);
assert_eq!(Weekday::from_str("sunday").unwrap(), Weekday::Sunday);If:
s.len() < 3s.len() > 9- The string could not be parsed
then this function will return
None.
§Parsing Exceptions
Weekday::Tuesday can be parsed from
tuetues
Weekday::Thursday can be parsed from:
thuthurthurs
(and all case-combinations).
§Examples
assert_eq!(Weekday::from_str("SUN").unwrap(), Weekday::Sunday);
assert_eq!(Weekday::from_str("Sun").unwrap(), Weekday::Sunday);
assert_eq!(Weekday::from_str("sun").unwrap(), Weekday::Sunday);
assert_eq!(Weekday::from_str("SUNDAY").unwrap(), Weekday::Sunday);
assert_eq!(Weekday::from_str("Sunday").unwrap(), Weekday::Sunday);
assert_eq!(Weekday::from_str("sunday").unwrap(), Weekday::Sunday);
assert_eq!(Weekday::from_str("MON").unwrap(), Weekday::Monday);
assert_eq!(Weekday::from_str("Mon").unwrap(), Weekday::Monday);
assert_eq!(Weekday::from_str("mon").unwrap(), Weekday::Monday);
assert_eq!(Weekday::from_str("MONDAY").unwrap(), Weekday::Monday);
assert_eq!(Weekday::from_str("Monday").unwrap(), Weekday::Monday);
assert_eq!(Weekday::from_str("monday").unwrap(), Weekday::Monday);
assert_eq!(Weekday::from_str("TUES").unwrap(), Weekday::Tuesday);
assert_eq!(Weekday::from_str("Tues").unwrap(), Weekday::Tuesday);
assert_eq!(Weekday::from_str("tues").unwrap(), Weekday::Tuesday);
assert_eq!(Weekday::from_str("TUE").unwrap(), Weekday::Tuesday);
assert_eq!(Weekday::from_str("Tue").unwrap(), Weekday::Tuesday);
assert_eq!(Weekday::from_str("tue").unwrap(), Weekday::Tuesday);
assert_eq!(Weekday::from_str("TUESDAY").unwrap(), Weekday::Tuesday);
assert_eq!(Weekday::from_str("Tuesday").unwrap(), Weekday::Tuesday);
assert_eq!(Weekday::from_str("tuesday").unwrap(), Weekday::Tuesday);
assert_eq!(Weekday::from_str("WED").unwrap(), Weekday::Wednesday);
assert_eq!(Weekday::from_str("Wed").unwrap(), Weekday::Wednesday);
assert_eq!(Weekday::from_str("wed").unwrap(), Weekday::Wednesday);
assert_eq!(Weekday::from_str("WEDNESDAY").unwrap(), Weekday::Wednesday);
assert_eq!(Weekday::from_str("Wednesday").unwrap(), Weekday::Wednesday);
assert_eq!(Weekday::from_str("wednesday").unwrap(), Weekday::Wednesday);
assert_eq!(Weekday::from_str("THURS").unwrap(), Weekday::Thursday);
assert_eq!(Weekday::from_str("Thurs").unwrap(), Weekday::Thursday);
assert_eq!(Weekday::from_str("thurs").unwrap(), Weekday::Thursday);
assert_eq!(Weekday::from_str("THUR").unwrap(), Weekday::Thursday);
assert_eq!(Weekday::from_str("Thur").unwrap(), Weekday::Thursday);
assert_eq!(Weekday::from_str("thur").unwrap(), Weekday::Thursday);
assert_eq!(Weekday::from_str("THURSDAY").unwrap(), Weekday::Thursday);
assert_eq!(Weekday::from_str("Thursday").unwrap(), Weekday::Thursday);
assert_eq!(Weekday::from_str("thursday").unwrap(), Weekday::Thursday);
assert_eq!(Weekday::from_str("FRI").unwrap(), Weekday::Friday);
assert_eq!(Weekday::from_str("Fri").unwrap(), Weekday::Friday);
assert_eq!(Weekday::from_str("fri").unwrap(), Weekday::Friday);
assert_eq!(Weekday::from_str("FRIDAY").unwrap(), Weekday::Friday);
assert_eq!(Weekday::from_str("Friday").unwrap(), Weekday::Friday);
assert_eq!(Weekday::from_str("friday").unwrap(), Weekday::Friday);
assert_eq!(Weekday::from_str("SAT").unwrap(), Weekday::Saturday);
assert_eq!(Weekday::from_str("Sat").unwrap(), Weekday::Saturday);
assert_eq!(Weekday::from_str("sat").unwrap(), Weekday::Saturday);
assert_eq!(Weekday::from_str("SATURDAY").unwrap(), Weekday::Saturday);
assert_eq!(Weekday::from_str("Saturday").unwrap(), Weekday::Saturday);
assert_eq!(Weekday::from_str("saturday").unwrap(), Weekday::Saturday);