[−][src]Function nom::number::complete::u32
pub fn u32<'a, E: ParseError<&'a [u8]>>(
endian: Endianness
) -> fn(_: &'a [u8]) -> IResult<&'a [u8], u32, E>
Recognizes an unsigned 4 byte integer
If the parameter is nom::Endianness::Big
, parse a big endian u32 integer,
otherwise if nom::Endianness::Little
parse a little endian u32 integer.
complete version: returns an error if there is not enough input data
use nom::number::complete::u32; let be_u32 = |s| { u32(nom::number::Endianness::Big)(s) }; assert_eq!(be_u32(b"\x00\x03\x05\x07abcefg"), Ok((&b"abcefg"[..], 0x00030507))); assert_eq!(be_u32(b"\x01"), Err(Err::Error((&[0x01][..], ErrorKind::Eof)))); let le_u32 = |s| { u32(nom::number::Endianness::Little)(s) }; assert_eq!(le_u32(b"\x00\x03\x05\x07abcefg"), Ok((&b"abcefg"[..], 0x07050300))); assert_eq!(le_u32(b"\x01"), Err(Err::Error((&[0x01][..], ErrorKind::Eof))));