Support path expressions after Record IDs with integer IDs
This commit is contained in:
parent
12b6e04539
commit
af9bd5b62f
2 changed files with 9 additions and 2 deletions
|
@ -21,6 +21,7 @@ pub fn number(i: &str) -> IResult<&str, ()> {
|
||||||
map(char('"'), |_| ()),
|
map(char('"'), |_| ()),
|
||||||
map(char('\''), |_| ()),
|
map(char('\''), |_| ()),
|
||||||
map(char(';'), |_| ()),
|
map(char(';'), |_| ()),
|
||||||
|
map(char('.'), |_| ()),
|
||||||
map(char(','), |_| ()),
|
map(char(','), |_| ()),
|
||||||
map(tag(".."), |_| ()),
|
map(tag(".."), |_| ()),
|
||||||
map(eof, |_| ()),
|
map(eof, |_| ()),
|
||||||
|
|
|
@ -105,7 +105,13 @@ impl From<f64> for Number {
|
||||||
|
|
||||||
impl From<&str> for Number {
|
impl From<&str> for Number {
|
||||||
fn from(s: &str) -> Self {
|
fn from(s: &str) -> Self {
|
||||||
Self::Decimal(BigDecimal::from_str(s).unwrap_or_default())
|
// Attempt to parse as i64
|
||||||
|
match s.parse::<i64>() {
|
||||||
|
// Store it as an i64
|
||||||
|
Ok(v) => Self::Int(v),
|
||||||
|
// It wasn't parsed as a i64 so store as a decimal
|
||||||
|
_ => Self::Decimal(BigDecimal::from_str(s).unwrap_or_default()),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -607,7 +613,7 @@ impl Sort for Vec<Number> {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn number(i: &str) -> IResult<&str, Number> {
|
pub fn number(i: &str) -> IResult<&str, Number> {
|
||||||
alt((map(integer, Number::from), map(decimal, Number::from)))(i)
|
alt((map(decimal, Number::from), map(integer, Number::from)))(i)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn integer(i: &str) -> IResult<&str, i64> {
|
pub fn integer(i: &str) -> IResult<&str, i64> {
|
||||||
|
|
Loading…
Reference in a new issue