From 81b7e84097e4f9c11ceb8dac9f2aad49fd0ce705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= Date: Sat, 18 Dec 2021 12:54:51 +0100 Subject: [PATCH] support parsing negative numbers --- src/parsing.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/parsing.rs b/src/parsing.rs index 0273a46..3827d52 100644 --- a/src/parsing.rs +++ b/src/parsing.rs @@ -24,6 +24,10 @@ pub fn parse_number_with_radix( ) -> Option { tokens.skip_tokens_while(|t| *t == ' '); let mut remaining = limit.map(|x| x as isize).unwrap_or(isize::MAX); + let mut prefix = String::new(); + if tokens.token('-') { + prefix.push('-'); + } let digits: String = tokens .tokens_while(|c| { remaining -= 1; @@ -31,7 +35,7 @@ pub fn parse_number_with_radix( }) .collect(); (!digits.is_empty()) - .then(|| T::from_str_radix(&digits, base).ok()) + .then(|| T::from_str_radix(&format!("{}{}", prefix, digits), base).ok()) .flatten() }