diff options
Diffstat (limited to 'src/de.rs')
| -rw-r--r-- | src/de.rs | 9 | 
1 files changed, 9 insertions, 0 deletions
| @@ -6,6 +6,7 @@  use std::borrow::Cow;  use std::error; +use std::f64;  use std::fmt;  use std::str;  use std::vec; @@ -882,6 +883,14 @@ impl<'a> Deserializer<'a> {                  }                  _ => Err(self.error(at, ErrorKind::NumberInvalid)),              } +        } else if s == "inf" { +            Ok(Value { e: E::Float(f64::INFINITY), start: start, end: end }) +        } else if s == "-inf" { +            Ok(Value { e: E::Float(f64::NEG_INFINITY), start: start, end: end }) +        } else if s == "nan" { +            Ok(Value { e: E::Float(f64::NAN), start: start, end: end }) +        } else if s == "-nan" { +            Ok(Value { e: E::Float(-f64::NAN), start: start, end: end })          } else {              self.integer(s).map(|f| Value { e: E::Integer(f), start: start, end: end })          } |