pub fn real(input: &mut &str) -> ModalResult<f32>
Expand description
Parses f32
§Examples
use serde_hkx::xml::de::parser::type_kind::real;
use winnow::Parser as _;
assert_eq!(real.parse("1.0"), Ok(1.0_f32));
assert_eq!(real.parse("0.1"), Ok(0.1_f32));
assert_eq!(real.parse("0"), Ok(0.0_f32)); // Integer format
assert_eq!(real.parse("1"), Ok(1.0_f32)); // Integer format
assert_eq!(real.parse("-1"), Ok(-1.0_f32)); // Negative integer format
// C++ indeterminate
assert!(real.parse("1.#IND").unwrap().is_nan());
assert!(real.parse("1.#IND0").unwrap().is_nan());
assert!(real.parse("1.#IND00").unwrap().is_nan());
assert!(real.parse("-1.#IND0").unwrap().is_nan());
assert!(real.parse("-1.#IND00").unwrap().is_nan());
// C++ infinity
assert_eq!(real.parse("1.#INF"), Ok(f32::INFINITY));
// assert_eq!(real.parse("-1.#INF00"), Ok(f32::NEG_INFINITY));
assert!(real.parse("invalid").is_err());
§Errors
When parse failed.