diff --git a/valu3/src/impls.rs b/valu3/src/impls.rs index 91b7038..a2f5480 100644 --- a/valu3/src/impls.rs +++ b/valu3/src/impls.rs @@ -960,6 +960,9 @@ mod tests { fn test_value_number_behavior() { let value = Value::from(3.14); assert_eq!(value.get_f64_unsafe(), 3.14); + + let value2 = Value::from(42u32); + assert_eq!(value2.to_u64(), Some(42)); } #[test] diff --git a/valu3/src/types/number.rs b/valu3/src/types/number.rs index 45e58f8..cb9dc7b 100644 --- a/valu3/src/types/number.rs +++ b/valu3/src/types/number.rs @@ -906,43 +906,43 @@ impl TryFrom<&str> for Number { type Error = Error; fn try_from(value: &str) -> Result { - match value.parse::() { - Ok(value) => Ok(Self::from(value)), - Err(_) => match value.parse::() { - Ok(value) => Ok(Self::from(value)), - Err(_) => match value.parse::() { - Ok(value) => Ok(Self::from(value)), - Err(_) => match value.parse::() { - Ok(value) => Ok(Self::from(value)), - Err(_) => match value.parse::() { - Ok(value) => Ok(Self::from(value)), - Err(_) => match value.parse::() { - Ok(value) => Ok(Self::from(value)), - Err(_) => match value.parse::() { - Ok(value) => Ok(Self::from(value)), - Err(_) => match value.parse::() { - Ok(value) => Ok(Self::from(value)), - Err(_) => match value.parse::() { - Ok(value) => Ok(Self::from(value)), - Err(_) => match value.parse::() { - Ok(value) => Ok(Self::from(value)), - Err(_) => match value.parse::() { - Ok(value) => Ok(Self::from(value)), - Err(_) => match value.parse::() { - Ok(value) => Ok(Self::from(value)), - Err(_) => Err(Error::NotNumber), - }, - }, - }, - }, - }, - }, - }, - }, - }, - }, - }, + if let Ok(parsed) = value.parse::() { + return Ok(Self::from(parsed)); } + if let Ok(parsed) = value.parse::() { + return Ok(Self::from(parsed)); + } + if let Ok(parsed) = value.parse::() { + return Ok(Self::from(parsed)); + } + if let Ok(parsed) = value.parse::() { + return Ok(Self::from(parsed)); + } + if let Ok(parsed) = value.parse::() { + return Ok(Self::from(parsed)); + } + if let Ok(parsed) = value.parse::() { + return Ok(Self::from(parsed)); + } + if let Ok(parsed) = value.parse::() { + return Ok(Self::from(parsed)); + } + if let Ok(parsed) = value.parse::() { + return Ok(Self::from(parsed)); + } + if let Ok(parsed) = value.parse::() { + return Ok(Self::from(parsed)); + } + if let Ok(parsed) = value.parse::() { + return Ok(Self::from(parsed)); + } + if let Ok(parsed) = value.parse::() { + return Ok(Self::from(parsed)); + } + if let Ok(parsed) = value.parse::() { + return Ok(Self::from(parsed)); + } + Err(Error::NotNumber) } }