diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/parser.rs | 40 | 
1 files changed, 22 insertions, 18 deletions
| diff --git a/src/parser.rs b/src/parser.rs index 69549e7..9db2cc9 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -257,7 +257,7 @@ impl<'a> Parser<'a> {              Some((pos, 'f')) => self.boolean(pos),              Some((pos, '[')) => self.array(pos),              Some((pos, '-')) => self.number_or_datetime(pos), -            Some((pos, ch)) if ch.is_digit() => self.number_or_datetime(pos), +            Some((pos, ch)) if ch.is_digit(10) => self.number_or_datetime(pos),              _ => {                  let mut it = self.cur.clone();                  let lo = it.next().map(|p| p.val0()).unwrap_or(self.input.len()); @@ -309,7 +309,9 @@ impl<'a> Parser<'a> {                  Some((_, '\r')) if multiline => ret.push('\n'),                  Some((pos, ch)) if ch < '\u001f' => {                      let mut escaped = String::new(); -                    ch.escape_default(|c| escaped.push(c)); +                    for c in ch.escape_default() { +                        escaped.push(c); +                    }                      self.errors.push(ParserError {                          lo: pos,                          hi: pos + 1, @@ -393,7 +395,9 @@ impl<'a> Parser<'a> {                  }                  Some((pos, ch)) => {                      let mut escaped = String::new(); -                    ch.escape_default(|c| escaped.push(c)); +                    for c in ch.escape_default() { +                        escaped.push(c); +                    }                      let next_pos = me.next_pos();                      me.errors.push(ParserError {                          lo: pos, @@ -456,7 +460,7 @@ impl<'a> Parser<'a> {          let mut is_float = false;          loop {              match self.cur.clone().next() { -                Some((_, ch)) if ch.is_digit() => { self.cur.next(); } +                Some((_, ch)) if ch.is_digit(10) => { self.cur.next(); }                  Some((_, '.')) if !is_float => {                      is_float = true;                      self.cur.next(); @@ -527,25 +531,25 @@ impl<'a> Parser<'a> {          }          let mut it = date.as_slice().chars();          let mut valid = true; -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);          valid = valid && it.next().map(|c| c == '-').unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);          valid = valid && it.next().map(|c| c == '-').unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);          valid = valid && it.next().map(|c| c == 'T').unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);          valid = valid && it.next().map(|c| c == ':').unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);          valid = valid && it.next().map(|c| c == ':').unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); -        valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false); +        valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);          valid = valid && it.next().map(|c| c == 'Z').unwrap_or(false);          if valid {              Some(Datetime(date.clone())) |