diff --git a/src/parsers.rs b/src/parsers.rs index cb6ade9..1e3665f 100644 --- a/src/parsers.rs +++ b/src/parsers.rs @@ -138,6 +138,13 @@ pub fn parse_i32(payload: &[u8]) -> Result { Ok(NativeEndian::read_i32(payload)) } +pub fn parse_i64(payload: &[u8]) -> Result { + if payload.len() != 8 { + return Err(format!("invalid i64: {payload:?}").into()); + } + Ok(NativeEndian::read_i64(payload)) +} + pub fn parse_u16_be(payload: &[u8]) -> Result { if payload.len() != size_of::() { return Err(DecodeError::InvalidNumber {