#[repr(u8)]pub enum Weekday {
Sunday = 1,
Monday = 2,
Tuesday = 3,
Wednesday = 4,
Thursday = 5,
Friday = 6,
Saturday = 7,
}Expand description
§Weekday.
This enum is used by Utc2k to differentiate between calendar weekdays.
§Examples
use utc2k::Weekday;
// The first.
assert_eq!(Weekday::Sunday as u8, 1_u8);
assert_eq!(Weekday::Sunday.as_str(), "Sunday");
assert_eq!(Weekday::Sunday.abbreviation(), "Sun");
// The last.
assert_eq!(Weekday::Saturday as u8, 7_u8);
assert_eq!(Weekday::Saturday.as_str(), "Saturday");
assert_eq!(Weekday::Saturday.abbreviation(), "Sat");Variants§
Implementations§
Source§impl Weekday
impl Weekday
Sourcepub const fn abbreviation(self) -> &'static str
pub const fn abbreviation(self) -> &'static str
§As String Slice (Abbreviated).
Return the three-letter abbreviation for a given weekday as a static string slice.
§Examples
use utc2k::Weekday;
assert_eq!(Weekday::Sunday.abbreviation(), "Sun");
assert_eq!(Weekday::Monday.abbreviation(), "Mon");
assert_eq!(Weekday::Tuesday.abbreviation(), "Tue");
assert_eq!(Weekday::Wednesday.abbreviation(), "Wed");
assert_eq!(Weekday::Thursday.abbreviation(), "Thu");
assert_eq!(Weekday::Friday.abbreviation(), "Fri");
assert_eq!(Weekday::Saturday.abbreviation(), "Sat");Sourcepub const fn as_str(self) -> &'static str
pub const fn as_str(self) -> &'static str
§As String Slice.
Return the name of a given weekday as a static string slice.
§Examples
use utc2k::Weekday;
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 previous(self) -> Self
pub const fn previous(self) -> Self
§Previous Weekday (Wrapping).
Return the previous Weekday.
§Examples
use utc2k::Weekday;
assert_eq!(Weekday::Sunday.previous(), Weekday::Saturday);
assert_eq!(Weekday::Monday.previous(), Weekday::Sunday);
assert_eq!(Weekday::Tuesday.previous(), Weekday::Monday);
assert_eq!(Weekday::Wednesday.previous(), Weekday::Tuesday);
assert_eq!(Weekday::Thursday.previous(), Weekday::Wednesday);
assert_eq!(Weekday::Friday.previous(), Weekday::Thursday);
assert_eq!(Weekday::Saturday.previous(), Weekday::Friday);
// Same as math:
assert_eq!(Weekday::Sunday.previous(), Weekday::Sunday - 1_u8);
// Same as the proper iterator too (provided you skip the first value):
assert_eq!(
Some(Weekday::Sunday.previous()),
Weekday::Sunday.into_iter().rev().skip(1).next(),
);Sourcepub const fn next(self) -> Self
pub const fn next(self) -> Self
§Next Weekday (Wrapping).
Return the next Weekday.
§Examples
use utc2k::Weekday;
assert_eq!(Weekday::Sunday.next(), Weekday::Monday);
assert_eq!(Weekday::Monday.next(), Weekday::Tuesday);
assert_eq!(Weekday::Tuesday.next(), Weekday::Wednesday);
assert_eq!(Weekday::Wednesday.next(), Weekday::Thursday);
assert_eq!(Weekday::Thursday.next(), Weekday::Friday);
assert_eq!(Weekday::Friday.next(), Weekday::Saturday);
assert_eq!(Weekday::Saturday.next(), Weekday::Sunday);
// Same as math:
assert_eq!(Weekday::Sunday.next(), Weekday::Sunday + 1_u8);
// Same as the proper iterator too (provided you skip the first value):
assert_eq!(
Some(Weekday::Sunday.next()),
Weekday::Sunday.into_iter().skip(1).next(),
);Sourcepub const fn cmp(a: Self, b: Self) -> Ordering
pub const fn cmp(a: Self, b: Self) -> Ordering
§Compare Two Weekdays.
Same as Ord/PartialOrd, but constant.
§Examples
use utc2k::Weekday;
assert_eq!(
Weekday::Sunday.cmp(&Weekday::Sunday),
Weekday::cmp(Weekday::Sunday, Weekday::Sunday), // Ordering::Equal
);
assert_eq!(
Weekday::Sunday.cmp(&Weekday::Saturday),
Weekday::cmp(Weekday::Sunday, Weekday::Saturday), // Ordering::Less
);
assert_eq!(
Weekday::Saturday.cmp(&Weekday::Sunday),
Weekday::cmp(Weekday::Saturday, Weekday::Sunday), // Ordering::Greater
);Source§impl Weekday
impl Weekday
Sourcepub const fn first_in_month(self, y: u16, m: Month) -> Option<u8>
pub const fn first_in_month(self, y: u16, m: Month) -> Option<u8>
§Date of First Weekday.
Return the day corresponding to the first occurrence of this weekday in a given year/month.
This will only return None if you pass a bad year and/or month.
§Examples
use utc2k::{Month, Weekday};
// The first Friday in November 2023 was on the 3rd.
assert_eq!(
Weekday::Friday.first_in_month(2023, Month::November),
Some(3),
);Sourcepub const fn last_in_month(self, y: u16, m: Month) -> Option<u8>
pub const fn last_in_month(self, y: u16, m: Month) -> Option<u8>
§Date of Last Weekday.
Return the day corresponding to the last occurrence of this weekday in a given year/month.
This will only return None if you pass a bad year and/or month.
§Examples
use utc2k::{Month, Weekday};
// The last Saturday in Februrary 2020 was the 29th. LEAP!
assert_eq!(
Weekday::Saturday.last_in_month(2020, Month::February),
Some(29),
);Sourcepub const fn nth_in_month(self, y: u16, m: Month, n: u8) -> Option<u8>
pub const fn nth_in_month(self, y: u16, m: Month, n: u8) -> Option<u8>
§Date of Nth Weekday.
Return the day corresponding to the nth occurrence of this weekday in a
given year/month, if any. (None is returned if it rolls over.)
§Examples
use utc2k::{Month, Weekday};
let day = Weekday::Monday;
// There are five Mondays in October 2023:
assert_eq!(day.nth_in_month(2023, Month::October, 1), Some(2));
assert_eq!(day.nth_in_month(2023, Month::October, 2), Some(9));
assert_eq!(day.nth_in_month(2023, Month::October, 3), Some(16));
assert_eq!(day.nth_in_month(2023, Month::October, 4), Some(23));
assert_eq!(day.nth_in_month(2023, Month::October, 5), Some(30));
// But no more!
assert_eq!(day.nth_in_month(2023, Month::October, 6), None);Trait Implementations§
Source§impl Add<u16> for Weekday
impl Add<u16> for Weekday
Source§fn add(self, other: u16) -> Self
fn add(self, other: u16) -> Self
§Wrapping u16 Addition.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
let start = Weekday::Sunday;
assert_eq!(start + 0_u16, Weekday::Sunday); // Noop.
assert_eq!(start + 1_u16, Weekday::Monday);
assert_eq!(start + 2_u16, Weekday::Tuesday);
assert_eq!(start + 3_u16, Weekday::Wednesday);
assert_eq!(start + 4_u16, Weekday::Thursday);
assert_eq!(start + 5_u16, Weekday::Friday);
assert_eq!(start + 6_u16, Weekday::Saturday);
assert_eq!(start + 7_u16, Weekday::Sunday); // Wrap.
assert_eq!(start + 8_u16, Weekday::Monday); // Wrap.
assert_eq!(start + 9_u16, Weekday::Tuesday); // Wrap.
// …Source§impl Add<u32> for Weekday
impl Add<u32> for Weekday
Source§fn add(self, other: u32) -> Self
fn add(self, other: u32) -> Self
§Wrapping u32 Addition.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
let start = Weekday::Sunday;
assert_eq!(start + 0_u32, Weekday::Sunday); // Noop.
assert_eq!(start + 1_u32, Weekday::Monday);
assert_eq!(start + 2_u32, Weekday::Tuesday);
assert_eq!(start + 3_u32, Weekday::Wednesday);
assert_eq!(start + 4_u32, Weekday::Thursday);
assert_eq!(start + 5_u32, Weekday::Friday);
assert_eq!(start + 6_u32, Weekday::Saturday);
assert_eq!(start + 7_u32, Weekday::Sunday); // Wrap.
assert_eq!(start + 8_u32, Weekday::Monday); // Wrap.
assert_eq!(start + 9_u32, Weekday::Tuesday); // Wrap.
// …Source§impl Add<u64> for Weekday
impl Add<u64> for Weekday
Source§fn add(self, other: u64) -> Self
fn add(self, other: u64) -> Self
§Wrapping u64 Addition.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
let start = Weekday::Sunday;
assert_eq!(start + 0_u64, Weekday::Sunday); // Noop.
assert_eq!(start + 1_u64, Weekday::Monday);
assert_eq!(start + 2_u64, Weekday::Tuesday);
assert_eq!(start + 3_u64, Weekday::Wednesday);
assert_eq!(start + 4_u64, Weekday::Thursday);
assert_eq!(start + 5_u64, Weekday::Friday);
assert_eq!(start + 6_u64, Weekday::Saturday);
assert_eq!(start + 7_u64, Weekday::Sunday); // Wrap.
assert_eq!(start + 8_u64, Weekday::Monday); // Wrap.
assert_eq!(start + 9_u64, Weekday::Tuesday); // Wrap.
// …Source§impl Add<u8> for Weekday
impl Add<u8> for Weekday
Source§fn add(self, other: u8) -> Self
fn add(self, other: u8) -> Self
§Wrapping u8 Addition.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
let start = Weekday::Sunday;
assert_eq!(start + 0_u8, Weekday::Sunday); // Noop.
assert_eq!(start + 1_u8, Weekday::Monday);
assert_eq!(start + 2_u8, Weekday::Tuesday);
assert_eq!(start + 3_u8, Weekday::Wednesday);
assert_eq!(start + 4_u8, Weekday::Thursday);
assert_eq!(start + 5_u8, Weekday::Friday);
assert_eq!(start + 6_u8, Weekday::Saturday);
assert_eq!(start + 7_u8, Weekday::Sunday); // Wrap.
assert_eq!(start + 8_u8, Weekday::Monday); // Wrap.
assert_eq!(start + 9_u8, Weekday::Tuesday); // Wrap.
// …Source§impl Add<usize> for Weekday
impl Add<usize> for Weekday
Source§fn add(self, other: usize) -> Self
fn add(self, other: usize) -> Self
§Wrapping usize Addition.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
let start = Weekday::Sunday;
assert_eq!(start + 0_usize, Weekday::Sunday); // Noop.
assert_eq!(start + 1_usize, Weekday::Monday);
assert_eq!(start + 2_usize, Weekday::Tuesday);
assert_eq!(start + 3_usize, Weekday::Wednesday);
assert_eq!(start + 4_usize, Weekday::Thursday);
assert_eq!(start + 5_usize, Weekday::Friday);
assert_eq!(start + 6_usize, Weekday::Saturday);
assert_eq!(start + 7_usize, Weekday::Sunday); // Wrap.
assert_eq!(start + 8_usize, Weekday::Monday); // Wrap.
assert_eq!(start + 9_usize, Weekday::Tuesday); // Wrap.
// …Source§impl AddAssign<u16> for Weekday
impl AddAssign<u16> for Weekday
Source§fn add_assign(&mut self, other: u16)
fn add_assign(&mut self, other: u16)
+= operation. Read moreSource§impl AddAssign<u32> for Weekday
impl AddAssign<u32> for Weekday
Source§fn add_assign(&mut self, other: u32)
fn add_assign(&mut self, other: u32)
+= operation. Read moreSource§impl AddAssign<u64> for Weekday
impl AddAssign<u64> for Weekday
Source§fn add_assign(&mut self, other: u64)
fn add_assign(&mut self, other: u64)
+= operation. Read moreSource§impl AddAssign<u8> for Weekday
impl AddAssign<u8> for Weekday
Source§fn add_assign(&mut self, other: u8)
fn add_assign(&mut self, other: u8)
+= operation. Read moreSource§impl AddAssign<usize> for Weekday
impl AddAssign<usize> for Weekday
Source§fn add_assign(&mut self, other: usize)
fn add_assign(&mut self, other: usize)
+= operation. Read moreSource§impl<'de> Deserialize<'de> for Weekday
Available on crate feature serde only.
impl<'de> Deserialize<'de> for Weekday
serde only.Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
§Deserialize.
Use the optional serde crate feature to enable serialization support.
Source§impl From<Weekday> for u16
impl From<Weekday> for u16
Source§fn from(src: Weekday) -> Self
fn from(src: Weekday) -> Self
§u16 From Weekday.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
assert_eq!(u16::from(Weekday::Sunday), 1);
assert_eq!(u16::from(Weekday::Monday), 2);
assert_eq!(u16::from(Weekday::Tuesday), 3);
assert_eq!(u16::from(Weekday::Wednesday), 4);
assert_eq!(u16::from(Weekday::Thursday), 5);
assert_eq!(u16::from(Weekday::Friday), 6);
assert_eq!(u16::from(Weekday::Saturday), 7);
// Same as `as` casting.
for v in Weekday::ALL {
assert_eq!(u16::from(v), v as u16);
}Source§impl From<Weekday> for u32
impl From<Weekday> for u32
Source§fn from(src: Weekday) -> Self
fn from(src: Weekday) -> Self
§u32 From Weekday.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
assert_eq!(u32::from(Weekday::Sunday), 1);
assert_eq!(u32::from(Weekday::Monday), 2);
assert_eq!(u32::from(Weekday::Tuesday), 3);
assert_eq!(u32::from(Weekday::Wednesday), 4);
assert_eq!(u32::from(Weekday::Thursday), 5);
assert_eq!(u32::from(Weekday::Friday), 6);
assert_eq!(u32::from(Weekday::Saturday), 7);
// Same as `as` casting.
for v in Weekday::ALL {
assert_eq!(u32::from(v), v as u32);
}Source§impl From<Weekday> for u64
impl From<Weekday> for u64
Source§fn from(src: Weekday) -> Self
fn from(src: Weekday) -> Self
§u64 From Weekday.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
assert_eq!(u64::from(Weekday::Sunday), 1);
assert_eq!(u64::from(Weekday::Monday), 2);
assert_eq!(u64::from(Weekday::Tuesday), 3);
assert_eq!(u64::from(Weekday::Wednesday), 4);
assert_eq!(u64::from(Weekday::Thursday), 5);
assert_eq!(u64::from(Weekday::Friday), 6);
assert_eq!(u64::from(Weekday::Saturday), 7);
// Same as `as` casting.
for v in Weekday::ALL {
assert_eq!(u64::from(v), v as u64);
}Source§impl From<Weekday> for u8
impl From<Weekday> for u8
Source§fn from(src: Weekday) -> Self
fn from(src: Weekday) -> Self
§u8 From Weekday.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
assert_eq!(u8::from(Weekday::Sunday), 1);
assert_eq!(u8::from(Weekday::Monday), 2);
assert_eq!(u8::from(Weekday::Tuesday), 3);
assert_eq!(u8::from(Weekday::Wednesday), 4);
assert_eq!(u8::from(Weekday::Thursday), 5);
assert_eq!(u8::from(Weekday::Friday), 6);
assert_eq!(u8::from(Weekday::Saturday), 7);
// Same as `as` casting.
for v in Weekday::ALL {
assert_eq!(u8::from(v), v as u8);
}Source§impl From<Weekday> for usize
impl From<Weekday> for usize
Source§fn from(src: Weekday) -> Self
fn from(src: Weekday) -> Self
§usize From Weekday.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
assert_eq!(usize::from(Weekday::Sunday), 1);
assert_eq!(usize::from(Weekday::Monday), 2);
assert_eq!(usize::from(Weekday::Tuesday), 3);
assert_eq!(usize::from(Weekday::Wednesday), 4);
assert_eq!(usize::from(Weekday::Thursday), 5);
assert_eq!(usize::from(Weekday::Friday), 6);
assert_eq!(usize::from(Weekday::Saturday), 7);
// Same as `as` casting.
for v in Weekday::ALL {
assert_eq!(usize::from(v), v as usize);
}Source§impl From<u16> for Weekday
impl From<u16> for Weekday
Source§fn from(src: u16) -> Self
fn from(src: u16) -> Self
§Weekday From u16 (Wrapping).
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
assert_eq!(Weekday::from(0_u16), Weekday::Saturday); // Wrap.
assert_eq!(Weekday::from(1_u16), Weekday::Sunday);
assert_eq!(Weekday::from(2_u16), Weekday::Monday);
assert_eq!(Weekday::from(3_u16), Weekday::Tuesday);
assert_eq!(Weekday::from(4_u16), Weekday::Wednesday);
assert_eq!(Weekday::from(5_u16), Weekday::Thursday);
assert_eq!(Weekday::from(6_u16), Weekday::Friday);
assert_eq!(Weekday::from(7_u16), Weekday::Saturday);
assert_eq!(Weekday::from(8_u16), Weekday::Sunday); // Wrap.
assert_eq!(Weekday::from(9_u16), Weekday::Monday); // Wrap.
assert_eq!(Weekday::from(10_u16), Weekday::Tuesday); // Wrap.
// …Source§impl From<u32> for Weekday
impl From<u32> for Weekday
Source§fn from(src: u32) -> Self
fn from(src: u32) -> Self
§Weekday From u32 (Wrapping).
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
assert_eq!(Weekday::from(0_u32), Weekday::Saturday); // Wrap.
assert_eq!(Weekday::from(1_u32), Weekday::Sunday);
assert_eq!(Weekday::from(2_u32), Weekday::Monday);
assert_eq!(Weekday::from(3_u32), Weekday::Tuesday);
assert_eq!(Weekday::from(4_u32), Weekday::Wednesday);
assert_eq!(Weekday::from(5_u32), Weekday::Thursday);
assert_eq!(Weekday::from(6_u32), Weekday::Friday);
assert_eq!(Weekday::from(7_u32), Weekday::Saturday);
assert_eq!(Weekday::from(8_u32), Weekday::Sunday); // Wrap.
assert_eq!(Weekday::from(9_u32), Weekday::Monday); // Wrap.
assert_eq!(Weekday::from(10_u32), Weekday::Tuesday); // Wrap.
// …Source§impl From<u64> for Weekday
impl From<u64> for Weekday
Source§fn from(src: u64) -> Self
fn from(src: u64) -> Self
§Weekday From u64 (Wrapping).
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
assert_eq!(Weekday::from(0_u64), Weekday::Saturday); // Wrap.
assert_eq!(Weekday::from(1_u64), Weekday::Sunday);
assert_eq!(Weekday::from(2_u64), Weekday::Monday);
assert_eq!(Weekday::from(3_u64), Weekday::Tuesday);
assert_eq!(Weekday::from(4_u64), Weekday::Wednesday);
assert_eq!(Weekday::from(5_u64), Weekday::Thursday);
assert_eq!(Weekday::from(6_u64), Weekday::Friday);
assert_eq!(Weekday::from(7_u64), Weekday::Saturday);
assert_eq!(Weekday::from(8_u64), Weekday::Sunday); // Wrap.
assert_eq!(Weekday::from(9_u64), Weekday::Monday); // Wrap.
assert_eq!(Weekday::from(10_u64), Weekday::Tuesday); // Wrap.
// …Source§impl From<u8> for Weekday
impl From<u8> for Weekday
Source§fn from(src: u8) -> Self
fn from(src: u8) -> Self
§Weekday From u8 (Wrapping).
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
assert_eq!(Weekday::from(0_u8), Weekday::Saturday); // Wrap.
assert_eq!(Weekday::from(1_u8), Weekday::Sunday);
assert_eq!(Weekday::from(2_u8), Weekday::Monday);
assert_eq!(Weekday::from(3_u8), Weekday::Tuesday);
assert_eq!(Weekday::from(4_u8), Weekday::Wednesday);
assert_eq!(Weekday::from(5_u8), Weekday::Thursday);
assert_eq!(Weekday::from(6_u8), Weekday::Friday);
assert_eq!(Weekday::from(7_u8), Weekday::Saturday);
assert_eq!(Weekday::from(8_u8), Weekday::Sunday); // Wrap.
assert_eq!(Weekday::from(9_u8), Weekday::Monday); // Wrap.
assert_eq!(Weekday::from(10_u8), Weekday::Tuesday); // Wrap.
// …Source§impl From<usize> for Weekday
impl From<usize> for Weekday
Source§fn from(src: usize) -> Self
fn from(src: usize) -> Self
§Weekday From usize (Wrapping).
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
assert_eq!(Weekday::from(0_usize), Weekday::Saturday); // Wrap.
assert_eq!(Weekday::from(1_usize), Weekday::Sunday);
assert_eq!(Weekday::from(2_usize), Weekday::Monday);
assert_eq!(Weekday::from(3_usize), Weekday::Tuesday);
assert_eq!(Weekday::from(4_usize), Weekday::Wednesday);
assert_eq!(Weekday::from(5_usize), Weekday::Thursday);
assert_eq!(Weekday::from(6_usize), Weekday::Friday);
assert_eq!(Weekday::from(7_usize), Weekday::Saturday);
assert_eq!(Weekday::from(8_usize), Weekday::Sunday); // Wrap.
assert_eq!(Weekday::from(9_usize), Weekday::Monday); // Wrap.
assert_eq!(Weekday::from(10_usize), Weekday::Tuesday); // Wrap.
// …Source§impl FromStr for Weekday
impl FromStr for Weekday
Source§fn from_str(src: &str) -> Result<Self, Self::Err>
fn from_str(src: &str) -> Result<Self, Self::Err>
§Parse From String.
Parse a Weekday from the first three letters of a string, case-insensitively.
§Examples
use utc2k::Weekday;
for v in Weekday::ALL {
assert_eq!(v.as_str().parse::<Weekday>(), Ok(v));
assert_eq!(v.abbreviation().parse::<Weekday>(), Ok(v));
}
// Remember that only the first three letters count!
assert_eq!("Sunlight".parse::<Weekday>(), Ok(Weekday::Sunday));Source§type Err = Utc2kError
type Err = Utc2kError
Source§impl IntoIterator for Weekday
impl IntoIterator for Weekday
Source§fn into_iter(self) -> Self::IntoIter
fn into_iter(self) -> Self::IntoIter
§Endless Weekday Iterator.
Return an iterator that will cycle endlessly through the weekdays, in order, forward or backward, starting with self.
§Examples
use utc2k::Weekday;
let mut iter = Weekday::Sunday.into_iter();
assert_eq!(iter.next(), Some(Weekday::Sunday));
assert_eq!(iter.next(), Some(Weekday::Monday));
assert_eq!(iter.next(), Some(Weekday::Tuesday));
assert_eq!(iter.next(), Some(Weekday::Wednesday));
assert_eq!(iter.next(), Some(Weekday::Thursday));
assert_eq!(iter.next(), Some(Weekday::Friday));
assert_eq!(iter.next(), Some(Weekday::Saturday));
assert_eq!(iter.next(), Some(Weekday::Sunday)); // Wrap.
assert_eq!(iter.next(), Some(Weekday::Monday)); // Wrap.
assert_eq!(iter.next(), Some(Weekday::Tuesday)); // Wrap.
// …
// Or like Ginger, backwards and in high heels.
let mut iter = Weekday::Saturday.into_iter().rev();
assert_eq!(iter.next(), Some(Weekday::Saturday));
assert_eq!(iter.next(), Some(Weekday::Friday));
assert_eq!(iter.next(), Some(Weekday::Thursday));
assert_eq!(iter.next(), Some(Weekday::Wednesday));
assert_eq!(iter.next(), Some(Weekday::Tuesday));
assert_eq!(iter.next(), Some(Weekday::Monday));
assert_eq!(iter.next(), Some(Weekday::Sunday));
assert_eq!(iter.next(), Some(Weekday::Saturday)); // Wrap.
assert_eq!(iter.next(), Some(Weekday::Friday)); // Wrap.
assert_eq!(iter.next(), Some(Weekday::Thursday)); // Wrap.
// …Source§impl Ord for Weekday
impl Ord for Weekday
Source§impl PartialEq<Weekday> for u16
impl PartialEq<Weekday> for u16
Source§fn eq(&self, other: &Weekday) -> bool
fn eq(&self, other: &Weekday) -> bool
§u16/Weekday Equality.
use utc2k::Weekday;
assert_eq!(1_u16, Weekday::Sunday);
assert_eq!(2_u16, Weekday::Monday);
assert_eq!(3_u16, Weekday::Tuesday);
assert_eq!(4_u16, Weekday::Wednesday);
assert_eq!(5_u16, Weekday::Thursday);
assert_eq!(6_u16, Weekday::Friday);
assert_eq!(7_u16, Weekday::Saturday);// Nope. assert_ne!(u16::MIN, Weekday::Sunday);
Source§impl PartialEq<Weekday> for u32
impl PartialEq<Weekday> for u32
Source§fn eq(&self, other: &Weekday) -> bool
fn eq(&self, other: &Weekday) -> bool
§u32/Weekday Equality.
use utc2k::Weekday;
assert_eq!(1_u32, Weekday::Sunday);
assert_eq!(2_u32, Weekday::Monday);
assert_eq!(3_u32, Weekday::Tuesday);
assert_eq!(4_u32, Weekday::Wednesday);
assert_eq!(5_u32, Weekday::Thursday);
assert_eq!(6_u32, Weekday::Friday);
assert_eq!(7_u32, Weekday::Saturday);// Nope. assert_ne!(u32::MIN, Weekday::Sunday);
Source§impl PartialEq<Weekday> for u64
impl PartialEq<Weekday> for u64
Source§fn eq(&self, other: &Weekday) -> bool
fn eq(&self, other: &Weekday) -> bool
§u64/Weekday Equality.
use utc2k::Weekday;
assert_eq!(1_u64, Weekday::Sunday);
assert_eq!(2_u64, Weekday::Monday);
assert_eq!(3_u64, Weekday::Tuesday);
assert_eq!(4_u64, Weekday::Wednesday);
assert_eq!(5_u64, Weekday::Thursday);
assert_eq!(6_u64, Weekday::Friday);
assert_eq!(7_u64, Weekday::Saturday);// Nope. assert_ne!(u64::MIN, Weekday::Sunday);
Source§impl PartialEq<Weekday> for u8
impl PartialEq<Weekday> for u8
Source§fn eq(&self, other: &Weekday) -> bool
fn eq(&self, other: &Weekday) -> bool
§u8/Weekday Equality.
use utc2k::Weekday;
assert_eq!(1_u8, Weekday::Sunday);
assert_eq!(2_u8, Weekday::Monday);
assert_eq!(3_u8, Weekday::Tuesday);
assert_eq!(4_u8, Weekday::Wednesday);
assert_eq!(5_u8, Weekday::Thursday);
assert_eq!(6_u8, Weekday::Friday);
assert_eq!(7_u8, Weekday::Saturday);// Nope. assert_ne!(u8::MIN, Weekday::Sunday);
Source§impl PartialEq<Weekday> for usize
impl PartialEq<Weekday> for usize
Source§fn eq(&self, other: &Weekday) -> bool
fn eq(&self, other: &Weekday) -> bool
§usize/Weekday Equality.
use utc2k::Weekday;
assert_eq!(1_usize, Weekday::Sunday);
assert_eq!(2_usize, Weekday::Monday);
assert_eq!(3_usize, Weekday::Tuesday);
assert_eq!(4_usize, Weekday::Wednesday);
assert_eq!(5_usize, Weekday::Thursday);
assert_eq!(6_usize, Weekday::Friday);
assert_eq!(7_usize, Weekday::Saturday);// Nope. assert_ne!(usize::MIN, Weekday::Sunday);
Source§impl PartialEq<u16> for Weekday
impl PartialEq<u16> for Weekday
Source§fn eq(&self, other: &u16) -> bool
fn eq(&self, other: &u16) -> bool
§Weekday/u16 Equality.
use utc2k::Weekday;
assert_eq!(Weekday::Sunday, 1_u16);
assert_eq!(Weekday::Monday, 2_u16);
assert_eq!(Weekday::Tuesday, 3_u16);
assert_eq!(Weekday::Wednesday, 4_u16);
assert_eq!(Weekday::Thursday, 5_u16);
assert_eq!(Weekday::Friday, 6_u16);
assert_eq!(Weekday::Saturday, 7_u16);
// Nope.
assert_ne!(Weekday::Sunday, u16::MIN);Source§impl PartialEq<u32> for Weekday
impl PartialEq<u32> for Weekday
Source§fn eq(&self, other: &u32) -> bool
fn eq(&self, other: &u32) -> bool
§Weekday/u32 Equality.
use utc2k::Weekday;
assert_eq!(Weekday::Sunday, 1_u32);
assert_eq!(Weekday::Monday, 2_u32);
assert_eq!(Weekday::Tuesday, 3_u32);
assert_eq!(Weekday::Wednesday, 4_u32);
assert_eq!(Weekday::Thursday, 5_u32);
assert_eq!(Weekday::Friday, 6_u32);
assert_eq!(Weekday::Saturday, 7_u32);
// Nope.
assert_ne!(Weekday::Sunday, u32::MIN);Source§impl PartialEq<u64> for Weekday
impl PartialEq<u64> for Weekday
Source§fn eq(&self, other: &u64) -> bool
fn eq(&self, other: &u64) -> bool
§Weekday/u64 Equality.
use utc2k::Weekday;
assert_eq!(Weekday::Sunday, 1_u64);
assert_eq!(Weekday::Monday, 2_u64);
assert_eq!(Weekday::Tuesday, 3_u64);
assert_eq!(Weekday::Wednesday, 4_u64);
assert_eq!(Weekday::Thursday, 5_u64);
assert_eq!(Weekday::Friday, 6_u64);
assert_eq!(Weekday::Saturday, 7_u64);
// Nope.
assert_ne!(Weekday::Sunday, u64::MIN);Source§impl PartialEq<u8> for Weekday
impl PartialEq<u8> for Weekday
Source§fn eq(&self, other: &u8) -> bool
fn eq(&self, other: &u8) -> bool
§Weekday/u8 Equality.
use utc2k::Weekday;
assert_eq!(Weekday::Sunday, 1_u8);
assert_eq!(Weekday::Monday, 2_u8);
assert_eq!(Weekday::Tuesday, 3_u8);
assert_eq!(Weekday::Wednesday, 4_u8);
assert_eq!(Weekday::Thursday, 5_u8);
assert_eq!(Weekday::Friday, 6_u8);
assert_eq!(Weekday::Saturday, 7_u8);
// Nope.
assert_ne!(Weekday::Sunday, u8::MIN);Source§impl PartialEq<usize> for Weekday
impl PartialEq<usize> for Weekday
Source§fn eq(&self, other: &usize) -> bool
fn eq(&self, other: &usize) -> bool
§Weekday/usize Equality.
use utc2k::Weekday;
assert_eq!(Weekday::Sunday, 1_usize);
assert_eq!(Weekday::Monday, 2_usize);
assert_eq!(Weekday::Tuesday, 3_usize);
assert_eq!(Weekday::Wednesday, 4_usize);
assert_eq!(Weekday::Thursday, 5_usize);
assert_eq!(Weekday::Friday, 6_usize);
assert_eq!(Weekday::Saturday, 7_usize);
// Nope.
assert_ne!(Weekday::Sunday, usize::MIN);Source§impl PartialOrd for Weekday
impl PartialOrd for Weekday
Source§impl Sub<u16> for Weekday
impl Sub<u16> for Weekday
Source§fn sub(self, other: u16) -> Self
fn sub(self, other: u16) -> Self
§Wrapping u16 Subtraction.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
let start = Weekday::Sunday;
assert_eq!(start - 0_u16, Weekday::Sunday); // Noop.
assert_eq!(start - 1_u16, Weekday::Saturday);
assert_eq!(start - 2_u16, Weekday::Friday);
assert_eq!(start - 3_u16, Weekday::Thursday);
assert_eq!(start - 4_u16, Weekday::Wednesday);
assert_eq!(start - 5_u16, Weekday::Tuesday);
assert_eq!(start - 6_u16, Weekday::Monday);
assert_eq!(start - 7_u16, Weekday::Sunday); // Wrap.
assert_eq!(start - 8_u16, Weekday::Saturday); // Wrap.
assert_eq!(start - 9_u16, Weekday::Friday); // Wrap.
// …Source§impl Sub<u32> for Weekday
impl Sub<u32> for Weekday
Source§fn sub(self, other: u32) -> Self
fn sub(self, other: u32) -> Self
§Wrapping u32 Subtraction.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
let start = Weekday::Sunday;
assert_eq!(start - 0_u32, Weekday::Sunday); // Noop.
assert_eq!(start - 1_u32, Weekday::Saturday);
assert_eq!(start - 2_u32, Weekday::Friday);
assert_eq!(start - 3_u32, Weekday::Thursday);
assert_eq!(start - 4_u32, Weekday::Wednesday);
assert_eq!(start - 5_u32, Weekday::Tuesday);
assert_eq!(start - 6_u32, Weekday::Monday);
assert_eq!(start - 7_u32, Weekday::Sunday); // Wrap.
assert_eq!(start - 8_u32, Weekday::Saturday); // Wrap.
assert_eq!(start - 9_u32, Weekday::Friday); // Wrap.
// …Source§impl Sub<u64> for Weekday
impl Sub<u64> for Weekday
Source§fn sub(self, other: u64) -> Self
fn sub(self, other: u64) -> Self
§Wrapping u64 Subtraction.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
let start = Weekday::Sunday;
assert_eq!(start - 0_u64, Weekday::Sunday); // Noop.
assert_eq!(start - 1_u64, Weekday::Saturday);
assert_eq!(start - 2_u64, Weekday::Friday);
assert_eq!(start - 3_u64, Weekday::Thursday);
assert_eq!(start - 4_u64, Weekday::Wednesday);
assert_eq!(start - 5_u64, Weekday::Tuesday);
assert_eq!(start - 6_u64, Weekday::Monday);
assert_eq!(start - 7_u64, Weekday::Sunday); // Wrap.
assert_eq!(start - 8_u64, Weekday::Saturday); // Wrap.
assert_eq!(start - 9_u64, Weekday::Friday); // Wrap.
// …Source§impl Sub<u8> for Weekday
impl Sub<u8> for Weekday
Source§fn sub(self, other: u8) -> Self
fn sub(self, other: u8) -> Self
§Wrapping u8 Subtraction.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
let start = Weekday::Sunday;
assert_eq!(start - 0_u8, Weekday::Sunday); // Noop.
assert_eq!(start - 1_u8, Weekday::Saturday);
assert_eq!(start - 2_u8, Weekday::Friday);
assert_eq!(start - 3_u8, Weekday::Thursday);
assert_eq!(start - 4_u8, Weekday::Wednesday);
assert_eq!(start - 5_u8, Weekday::Tuesday);
assert_eq!(start - 6_u8, Weekday::Monday);
assert_eq!(start - 7_u8, Weekday::Sunday); // Wrap.
assert_eq!(start - 8_u8, Weekday::Saturday); // Wrap.
assert_eq!(start - 9_u8, Weekday::Friday); // Wrap.
// …Source§impl Sub<usize> for Weekday
impl Sub<usize> for Weekday
Source§fn sub(self, other: usize) -> Self
fn sub(self, other: usize) -> Self
§Wrapping usize Subtraction.
Weekdays range from 1..=7, starting with Sunday.
§Examples
use utc2k::Weekday;
let start = Weekday::Sunday;
assert_eq!(start - 0_usize, Weekday::Sunday); // Noop.
assert_eq!(start - 1_usize, Weekday::Saturday);
assert_eq!(start - 2_usize, Weekday::Friday);
assert_eq!(start - 3_usize, Weekday::Thursday);
assert_eq!(start - 4_usize, Weekday::Wednesday);
assert_eq!(start - 5_usize, Weekday::Tuesday);
assert_eq!(start - 6_usize, Weekday::Monday);
assert_eq!(start - 7_usize, Weekday::Sunday); // Wrap.
assert_eq!(start - 8_usize, Weekday::Saturday); // Wrap.
assert_eq!(start - 9_usize, Weekday::Friday); // Wrap.
// …Source§impl SubAssign<u16> for Weekday
impl SubAssign<u16> for Weekday
Source§fn sub_assign(&mut self, other: u16)
fn sub_assign(&mut self, other: u16)
-= operation. Read moreSource§impl SubAssign<u32> for Weekday
impl SubAssign<u32> for Weekday
Source§fn sub_assign(&mut self, other: u32)
fn sub_assign(&mut self, other: u32)
-= operation. Read moreSource§impl SubAssign<u64> for Weekday
impl SubAssign<u64> for Weekday
Source§fn sub_assign(&mut self, other: u64)
fn sub_assign(&mut self, other: u64)
-= operation. Read moreSource§impl SubAssign<u8> for Weekday
impl SubAssign<u8> for Weekday
Source§fn sub_assign(&mut self, other: u8)
fn sub_assign(&mut self, other: u8)
-= operation. Read moreSource§impl SubAssign<usize> for Weekday
impl SubAssign<usize> for Weekday
Source§fn sub_assign(&mut self, other: usize)
fn sub_assign(&mut self, other: usize)
-= operation. Read moreSource§impl TryFrom<&[u8]> for Weekday
impl TryFrom<&[u8]> for Weekday
Source§fn try_from(src: &[u8]) -> Result<Self, Self::Error>
fn try_from(src: &[u8]) -> Result<Self, Self::Error>
§From Byte Slice.
Parse a Weekday from the first three bytes of a slice,
case-insensitively.
§Examples
use utc2k::Weekday;
// Case doesn't matter.
assert_eq!(
Weekday::try_from(b"monday".as_slice()),
Ok(Weekday::Monday),
);
assert_eq!(
Weekday::try_from(b"Monday".as_slice()),
Ok(Weekday::Monday),
);
assert_eq!(
Weekday::try_from(b"MONDAY".as_slice()),
Ok(Weekday::Monday),
);
// Only the first three bytes are actually inspected.
assert_eq!(
Weekday::try_from(b"Mon".as_slice()),
Ok(Weekday::Monday),
);
assert_eq!(
Weekday::try_from(b"money".as_slice()), // Close enough!
Ok(Weekday::Monday),
);
// Wrong is wrong.
assert!(Weekday::try_from(b"moonday".as_slice()).is_err());Source§type Error = Utc2kError
type Error = Utc2kError
impl Copy for Weekday
impl Eq for Weekday
impl StructuralPartialEq for Weekday
Auto Trait Implementations§
impl Freeze for Weekday
impl RefUnwindSafe for Weekday
impl Send for Weekday
impl Sync for Weekday
impl Unpin for Weekday
impl UnwindSafe for Weekday
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more