diff --git a/Cargo.toml b/Cargo.toml index f4353dd..c497c77 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,7 +27,6 @@ regex = { version = "1.5.5", optional = true} serde = { version = "1.0.133", optional = true} serde_derive = { version = "1.0.133", optional = true} rand = { version = "0.8.5", optional = true} -num-traits = "0.2.15" [features] serde_support = ["serde", "serde_derive"] diff --git a/src/token/mod.rs b/src/token/mod.rs index 865fdf1..ddf9656 100644 --- a/src/token/mod.rs +++ b/src/token/mod.rs @@ -348,7 +348,7 @@ fn partial_tokens_to_tokens(mut tokens: &[PartialToken]) -> EvalexprResult { cutoff = 1; - if let Ok(number) = literal.parse_dec_or_hex::() { + if let Ok(number) = parse_dec_or_hex(&literal) { Some(Token::Int(number)) } else if let Ok(number) = literal.parse::() { Some(Token::Float(number)) @@ -442,18 +442,11 @@ pub(crate) fn tokenize(string: &str) -> EvalexprResult> { partial_tokens_to_tokens(&str_to_partial_tokens(string)?) } -/// Helper trait to parse strings to integer from both decimal or hex -trait ParseDecOrHex { - fn parse_dec_or_hex(&self) -> Result; -} - -impl ParseDecOrHex for str { - fn parse_dec_or_hex(&self) -> Result { - if self.starts_with("0x") { - T::from_str_radix(&self[2..], 16) - } else { - T::from_str_radix(&self, 10) - } +fn parse_dec_or_hex(literal: &str) -> Result { + if literal.starts_with("0x") { + IntType::from_str_radix(&literal[2..], 16) + } else { + IntType::from_str_radix(&literal, 10) } }