Unify number parsing again

This commit is contained in:
Joscha 2021-11-19 21:34:32 +01:00
parent 7ed4ba2372
commit e9cff194d3
2 changed files with 9 additions and 9 deletions

View file

@ -31,6 +31,11 @@ fn fail<S: Into<String>, T>(span: Span, message: S) -> Result<T> {
Err(error(span, message))
}
fn parse_number(p: Pair<Rule>) -> i32 {
assert_eq!(p.as_rule(), Rule::number);
p.as_str().parse().unwrap()
}
fn parse_title(p: Pair<Rule>) -> String {
assert_eq!(p.as_rule(), Rule::title);
let p = p.into_inner().next().unwrap();
@ -112,7 +117,7 @@ fn parse_amount(p: Pair<Rule>) -> Amount {
_ => unreachable!(),
})
}
Rule::amount_value => value = p.as_str().parse().unwrap(),
Rule::number => value = parse_number(p),
_ => unreachable!(),
}
}
@ -270,11 +275,6 @@ fn parse_date_fixed(p: Pair<Rule>) -> Result<DateSpec> {
Ok(spec)
}
fn parse_number(p: Pair<Rule>) -> i32 {
assert_eq!(p.as_rule(), Rule::number);
p.as_str().parse().unwrap()
}
fn parse_boolean(p: Pair<Rule>) -> bool {
assert_eq!(p.as_rule(), Rule::boolean);
match p.as_str() {