From ec6d0153714f3c9846e7ac3ab96d333ab2984fed Mon Sep 17 00:00:00 2001 From: Ivan Gureev Date: Sun, 27 Apr 2025 12:29:50 +0300 Subject: [PATCH] feature/from_str_parse-fast-float: fast-float --- Cargo.toml | 1 + src/types/extended_float/impl_conversions.rs | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 31420a2..90c6bfb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,6 +18,7 @@ bench = false [dependencies] num-traits = "0.2" +fast-float = "0.2" [dev-dependencies] pretty_assertions = "^1" diff --git a/src/types/extended_float/impl_conversions.rs b/src/types/extended_float/impl_conversions.rs index 262de61..b3bc5a1 100644 --- a/src/types/extended_float/impl_conversions.rs +++ b/src/types/extended_float/impl_conversions.rs @@ -40,11 +40,11 @@ pub enum FromStrError { Invalid, } -impl FromStr for ExtendedFloat { +impl FromStr for ExtendedFloat { type Err = FromStrError; fn from_str(s: &str) -> Result { - let v: T = s.parse().map_err(|_| FromStrError::Invalid)?; + let v: T = fast_float::parse(s).map_err(|_| FromStrError::Invalid)?; ExtendedFloat::try_from_value(v).map_err(|_| FromStrError::Invalid) } }