Function wson::number::number

source · []
pub fn number(input: &str) -> IResult<&str, Number>
Expand description

Recognize number

use nom::error::{ErrorKind, Error};
use nom::Err;
use wson::number::{number, Number};


// the parser will parse "3"
assert_eq!(number("3"), Ok(("", Number::PositiveInteger(3))));

// the parser will parse "32"
assert_eq!(number("32"), Ok(("", Number::PositiveInteger(32))));

// the parser will parse "-32"
assert_eq!(number("-32"), Ok(("", Number::NegativeInteger(-32))));

// parser will parse "3.21"
assert_eq!(number("3.21"), Ok(("", Number::Float(3.21))));

// parser will parse "-3.21"
assert_eq!(number("-3.21"), Ok(("", Number::Float(-3.21))));

// parser will parse "-1E12"
assert_eq!(number("-1E12"), Ok(("", Number::Float(-1E12))));

// parser will parse "3e21"
assert_eq!(number("3e21"), Ok(("", Number::Float(3e21))));

// parser will parse "3.2e-2"
assert_eq!(number("3.2e-2"), Ok(("", Number::Float(0.032))));

// this will fail if number fails
assert_eq!(number("a"), Err(Err::Error(Error::new("a", ErrorKind::OneOf))));