- let p16 = self.read_u16be();
- if let Err(e) = p16 { return Err(e); }
- let p8 = self.read_byte();
- if let Err(e) = p8 { return Err(e); }
- Ok(((p16.unwrap() as u32) << 8) | (p8.unwrap() as u32))
+ let p16 = self.read_u16be()?;
+ let p8 = self.read_byte()?;
+ Ok(((p16 as u32) << 8) | (p8 as u32))
+ }
+
+ pub fn peek_u24be(&mut self) -> ByteIOResult<u32> {
+ let mut src: [u8; 3] = [0; 3];
+ self.peek_buf(&mut src)?;
+ Ok(((src[0] as u32) << 16) | ((src[1] as u32) << 8) | (src[2] as u32))