Unify Dates logic and expand DoneDate format
This commit is contained in:
parent
2e7ab3c4a1
commit
c69af9bcde
8 changed files with 119 additions and 133 deletions
|
|
@ -268,7 +268,7 @@ pub enum DoneDate {
|
|||
Date {
|
||||
root: NaiveDate,
|
||||
},
|
||||
DateWithTime {
|
||||
DateTime {
|
||||
root: NaiveDate,
|
||||
root_time: Time,
|
||||
},
|
||||
|
|
@ -276,7 +276,12 @@ pub enum DoneDate {
|
|||
root: NaiveDate,
|
||||
other: NaiveDate,
|
||||
},
|
||||
DateToDateWithTime {
|
||||
DateTimeToTime {
|
||||
root: NaiveDate,
|
||||
root_time: Time,
|
||||
other_time: Time,
|
||||
},
|
||||
DateTimeToDateTime {
|
||||
root: NaiveDate,
|
||||
root_time: Time,
|
||||
other: NaiveDate,
|
||||
|
|
|
|||
|
|
@ -229,9 +229,14 @@ impl fmt::Display for DoneDate {
|
|||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
DoneDate::Date { root } => write!(f, "{}", root),
|
||||
DoneDate::DateWithTime { root, root_time } => write!(f, "{} {}", root, root_time),
|
||||
DoneDate::DateTime { root, root_time } => write!(f, "{} {}", root, root_time),
|
||||
DoneDate::DateToDate { root, other } => write!(f, "{} -- {}", root, other),
|
||||
DoneDate::DateToDateWithTime {
|
||||
DoneDate::DateTimeToTime {
|
||||
root,
|
||||
root_time,
|
||||
other_time,
|
||||
} => write!(f, "{} {} -- {}", root, root_time, other_time),
|
||||
DoneDate::DateTimeToDateTime {
|
||||
root,
|
||||
root_time,
|
||||
other,
|
||||
|
|
|
|||
|
|
@ -112,6 +112,7 @@ statements = { (stmt_date | stmt_bdate | stmt_from | stmt_until | stmt_except |
|
|||
|
||||
donedate = {
|
||||
datum ~ time ~ "--" ~ datum ~ time
|
||||
| datum ~ time ~ "--" ~ time
|
||||
| datum ~ time
|
||||
| datum ~ "--" ~ datum
|
||||
| datum
|
||||
|
|
|
|||
|
|
@ -652,7 +652,7 @@ fn parse_donedate(p: Pair<'_, Rule>) -> Result<DoneDate> {
|
|||
root: parse_datum(ps.pop().unwrap())?.value,
|
||||
},
|
||||
2 => match ps[1].as_rule() {
|
||||
Rule::time => DoneDate::DateWithTime {
|
||||
Rule::time => DoneDate::DateTime {
|
||||
root_time: parse_time(ps.pop().unwrap())?.value,
|
||||
root: parse_datum(ps.pop().unwrap())?.value,
|
||||
},
|
||||
|
|
@ -662,7 +662,12 @@ fn parse_donedate(p: Pair<'_, Rule>) -> Result<DoneDate> {
|
|||
},
|
||||
_ => unreachable!(),
|
||||
},
|
||||
4 => DoneDate::DateToDateWithTime {
|
||||
3 => DoneDate::DateTimeToTime {
|
||||
other_time: parse_time(ps.pop().unwrap())?.value,
|
||||
root_time: parse_time(ps.pop().unwrap())?.value,
|
||||
root: parse_datum(ps.pop().unwrap())?.value,
|
||||
},
|
||||
4 => DoneDate::DateTimeToDateTime {
|
||||
other_time: parse_time(ps.pop().unwrap())?.value,
|
||||
other: parse_datum(ps.pop().unwrap())?.value,
|
||||
root_time: parse_time(ps.pop().unwrap())?.value,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue