34 lines
743 B
Rust
34 lines
743 B
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
|
|
#[repr(u8)]
|
|
pub enum Weekday {
|
|
Thursday,
|
|
Friday,
|
|
Saturday,
|
|
Sunday,
|
|
Monday,
|
|
Tuesday,
|
|
Wednesday,
|
|
}
|
|
|
|
impl TryFrom<i64> for Weekday {
|
|
type Error = ParseWeekdayError;
|
|
|
|
fn try_from(value: i64) -> Result<Self, Self::Error> {
|
|
match value {
|
|
0 => Ok(Self::Thursday),
|
|
1 => Ok(Self::Friday),
|
|
2 => Ok(Self::Saturday),
|
|
3 => Ok(Self::Sunday),
|
|
4 => Ok(Self::Monday),
|
|
5 => Ok(Self::Tuesday),
|
|
6 => Ok(Self::Wednesday),
|
|
_ => Err(ParseWeekdayError),
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Debug)]
|
|
pub struct ParseWeekdayError;
|