support parsing negative numbers
This commit is contained in:
parent
7c8b242698
commit
81b7e84097
|
@ -24,6 +24,10 @@ pub fn parse_number_with_radix<T: Num>(
|
|||
) -> Option<T> {
|
||||
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<T: Num>(
|
|||
})
|
||||
.collect();
|
||||
(!digits.is_empty())
|
||||
.then(|| T::from_str_radix(&digits, base).ok())
|
||||
.then(|| T::from_str_radix(&format!("{}{}", prefix, digits), base).ok())
|
||||
.flatten()
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue