Skip to main content

parse_number

Function parse_number 

Source
pub fn parse_number(input: &str) -> IResult<&str, i64>
Expand description

Parse a decimal or hexadecimal number

Supports both decimal (123, -456) and hexadecimal (0x1a2b, -0xFF) formats.

§Examples

use libmagic_rs::parser::grammar::parse_number;

assert_eq!(parse_number("123"), Ok(("", 123)));
assert_eq!(parse_number("0x1a"), Ok(("", 26)));
assert_eq!(parse_number("-42"), Ok(("", -42)));
assert_eq!(parse_number("-0xFF"), Ok(("", -255)));

§Errors

Returns a nom parsing error if:

  • Input is empty or contains no valid digits
  • Hexadecimal number lacks proper “0x” prefix or contains invalid hex digits
  • Number cannot be parsed as a valid i64 value
  • Input contains invalid characters for the detected number format