pub fn rational<O: FromStr<Err = ParseFloatError>>() -> Parser<O>
Expand description

Rational number.

use memoir::*;

let p = rational::<f64>();

assert!(p.parse("0").is_ok());
assert!(p.parse("123.456").is_ok());
assert!(p.parse("-1.944").is_ok());
assert!(p.parse("42").is_ok());

assert_eq!(p.parse(".42"), Ok((0.42, "")));
assert_eq!(p.parse("-.42"), Ok((-0.42, "")));
assert_eq!(p.parse("42."), Ok((42., "")));
assert_eq!(p.parse("42-"), Ok((42., "-")));