diff options
Diffstat (limited to 'src/json.rs')
| -rw-r--r-- | src/json.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/json.rs b/src/json.rs index 9515661..eeccf5e 100644 --- a/src/json.rs +++ b/src/json.rs @@ -4,7 +4,9 @@ use serde_json::Value; pub fn number_from_string<'de, D: Deserializer<'de>>(deserializer: D) -> Result<f64, D::Error> { Ok(match Value::deserialize(deserializer)? { Value::String(s) => s.parse().map_err(de::Error::custom)?, - Value::Number(num) => num.as_f64().ok_or(de::Error::custom("Invalid number"))?, + Value::Number(num) => num + .as_f64() + .ok_or_else(|| de::Error::custom("Invalid number"))?, _ => return Err(de::Error::custom("wrong type")), }) } |
