Function real

Source
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.