[][src]Function lexical::try_parse_lossy_radix

pub fn try_parse_lossy_radix<N: FromBytesLossy, Bytes: AsRef<[u8]>>(
    bytes: Bytes,
    radix: u8
) -> Result<N, Error>

High-level lossy conversion of bytes to a float with a custom radix.

This function uses aggressive optimizations to avoid worst-case scenarios, and can return inaccurate results. For guaranteed accurate floats, use try_parse_radix.

  • bytes - Byte slice to convert to number.
  • radix - Number of unique digits for the number (base).

Examples

// Create our error wrapper.
let err = |u| ErrorKind::InvalidDigit(u).into();

// String overloads
assert_eq!(lexical::try_parse_lossy_radix::<f32, _>("0", 10), Ok(0.0));
assert_eq!(lexical::try_parse_lossy_radix::<f32, _>("1.0", 10), Ok(1.0));
assert_eq!(lexical::try_parse_lossy_radix::<f32, _>("1.", 10), Err(err(1)));
assert_eq!(lexical::try_parse_lossy_radix::<f32, _>("1.0.", 10), Err(err(3)));

// Bytes overloads
assert_eq!(lexical::try_parse_lossy_radix::<f32, _>(b"0", 10), Ok(0.0));
assert_eq!(lexical::try_parse_lossy_radix::<f32, _>(b"1.0", 10), Ok(1.0));
assert_eq!(lexical::try_parse_lossy_radix::<f32, _>(b"1.", 10), Err(err(1)));
assert_eq!(lexical::try_parse_lossy_radix::<f32, _>(b"1.0.", 10), Err(err(3)));