Function rscache::parse::be_u16_smart[][src]

pub fn be_u16_smart<'a, E: ParseError<&'a [u8]>>(
    buffer: &'a [u8]
) -> IResult<&'a [u8], u16, E>
Expand description

Reads 1 byte if the first byte < 128, reads 2 bytes otherwise.

Errors

Parser can reach EOF early if not enough bytes are supplied.

Example

use rscache::parse::be_u16_smart;

let buffer = &[17, 142, 64, 4, 24, 254];

let (buffer, value1) = be_u16_smart(buffer)?;
let (buffer, value2) = be_u16_smart(buffer)?;

assert_eq!(value1, 17);
assert_eq!(value2, 3648);
assert_eq!(buffer, &[4, 24, 254]);