diff --git a/src/datetime.rs b/src/datetime.rs index 7a618dc..b3c82d6 100644 --- a/src/datetime.rs +++ b/src/datetime.rs @@ -179,11 +179,10 @@ impl FromStr for Datetime { chars.clone().next() == Some('T') { chars.next(); true - } else if full_date.is_none() { - true } else { - false + full_date.is_none() }; + let time = if partial_time { let h1 = digit(&mut chars)?; let h2 = digit(&mut chars)?; @@ -299,7 +298,7 @@ impl FromStr for Datetime { fn digit(chars: &mut str::Chars) -> Result { match chars.next() { - Some(c) if '0' <= c && c <= '9' => Ok(c as u8 - '0' as u8), + Some(c) if '0' <= c && c <= '9' => Ok(c as u8 - b'0'), _ => Err(DatetimeParseError { _private: () }), } } diff --git a/src/de.rs b/src/de.rs index 0888186..0022791 100644 --- a/src/de.rs +++ b/src/de.rs @@ -687,7 +687,7 @@ impl<'a> Deserializer<'a> { } fn number_or_date(&mut self, s: &'a str) -> Result, Error> { - if s.contains("T") || (s.len() > 1 && s[1..].contains("-")) && + if s.contains('T') || (s.len() > 1 && s[1..].contains('-')) && !s.contains("e-") { self.datetime(s, false).map(Value::Datetime) } else if self.eat(Token::Colon)? { @@ -698,7 +698,7 @@ impl<'a> Deserializer<'a> { } fn number(&mut self, s: &'a str) -> Result, Error> { - if s.contains("e") || s.contains("E") { + if s.contains('e') || s.contains('E') { self.float(s, None).map(Value::Float) } else if self.eat(Token::Period)? { let at = self.tokens.current(); @@ -727,7 +727,7 @@ impl<'a> Deserializer<'a> { if suffix != "" { return Err(self.error(start, ErrorKind::NumberInvalid)) } - prefix.replace("_", "").trim_left_matches("+").parse().map_err(|_e| { + prefix.replace("_", "").trim_left_matches('+').parse().map_err(|_e| { self.error(start, ErrorKind::NumberInvalid) }) } @@ -789,7 +789,7 @@ impl<'a> Deserializer<'a> { } let mut exponent = None; - if suffix.starts_with("e") || suffix.starts_with("E") { + if suffix.starts_with('e') || suffix.starts_with('E') { let (a, b) = if suffix.len() == 1 { self.eat(Token::Plus)?; match self.next()? { @@ -807,7 +807,7 @@ impl<'a> Deserializer<'a> { exponent = Some(a); } - let mut number = integral.trim_left_matches("+") + let mut number = integral.trim_left_matches('+') .chars() .filter(|c| *c != '_') .collect::(); diff --git a/src/ser.rs b/src/ser.rs index 0b9308d..bc5f357 100644 --- a/src/ser.rs +++ b/src/ser.rs @@ -563,7 +563,7 @@ impl<'a, 'b> ser::SerializeMap for SerializeTable<'a, 'b> { SerializeTable::Table { ref mut key, .. } => { key.truncate(0); *key = input.serialize(StringExtractor)?; - if key.contains("\n") { + if key.contains('\n') { return Err(Error::KeyNewline) } } diff --git a/src/tokens.rs b/src/tokens.rs index f438fed..6b7c3bc 100644 --- a/src/tokens.rs +++ b/src/tokens.rs @@ -141,7 +141,7 @@ impl<'a> Tokenizer<'a> { if val == "" { return Err(Error::EmptyTableKey(offset)) } - match src.find("\n") { + match src.find('\n') { None => Ok(val), Some(i) => Err(Error::NewlineInTableKey(offset + i)), } diff --git a/tests/valid.rs b/tests/valid.rs index 4229f1c..e8ea6af 100644 --- a/tests/valid.rs +++ b/tests/valid.rs @@ -18,7 +18,7 @@ fn to_json(toml: toml::Value) -> Json { Toml::Float(f) => doit("float", Json::String({ let s = format!("{:.15}", f); let s = format!("{}", s.trim_right_matches('0')); - if s.ends_with(".") {format!("{}0", s)} else {s} + if s.ends_with('.') {format!("{}0", s)} else {s} })), Toml::Boolean(b) => doit("bool", Json::String(format!("{}", b))), Toml::Datetime(s) => doit("datetime", Json::String(s.to_string())),