Function lexical::parse

source ·
pub fn parse<N: FromLexical, Bytes: AsRef<[u8]>>(bytes: Bytes) -> Result<N>
Expand description

High-level conversion of decimal-encoded bytes to a number.

This function only returns a value if the entire string is successfully parsed.

  • bytes - Byte slice to convert to number.

§Examples

// Create our error.
fn error<T>(r: lexical::Result<T>) -> Error {
    r.err().unwrap()
}

// String overloads
assert_eq!(lexical::parse::<i32, _>("5"), Ok(5));
assert!(lexical::parse::<i32, _>("1a").err().unwrap().is_invalid_digit());
assert_eq!(lexical::parse::<f32, _>("0"), Ok(0.0));
assert_eq!(lexical::parse::<f32, _>("1.0"), Ok(1.0));
assert_eq!(lexical::parse::<f32, _>("1."), Ok(1.0));

// Bytes overloads
assert_eq!(lexical::parse::<i32, _>(b"5"), Ok(5));
assert!(lexical::parse::<f32, _>(b"1a").err().unwrap().is_invalid_digit());
assert_eq!(lexical::parse::<f32, _>(b"0"), Ok(0.0));
assert_eq!(lexical::parse::<f32, _>(b"1.0"), Ok(1.0));
assert_eq!(lexical::parse::<f32, _>(b"1."), Ok(1.0));