Skip to content

Commit ac2726d

Browse files
committed
return any remaining bytes not parsed into a PrimaryHeader
1 parent 0c700ad commit ac2726d

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

src/primaryheader.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ pub struct PrimaryHeader {
4444

4545
impl PrimaryHeader {
4646

47-
fn parse(raw: &[u8]) -> ParseResult<PrimaryHeader> {
47+
fn parse(raw: &[u8]) -> ParseResult<(PrimaryHeader, Vec<u8>)> {
4848
let mut reader = Cursor::new(raw.to_vec());
4949

5050
let header_0 = reader.read_u16::<BigEndian>()?;
@@ -58,15 +58,19 @@ impl PrimaryHeader {
5858
let sequence_count = (header_1 & 0x3FFF) as u16;
5959

6060
let data_length = reader.read_u16::<BigEndian>()?;
61-
Ok(PrimaryHeader {
61+
62+
let pos = reader.position() as usize;
63+
let remaining = raw[pos..].to_vec();
64+
65+
Ok((PrimaryHeader {
6266
version,
6367
packet_type,
6468
sec_header_flag,
6569
app_proc_id,
6670
sequence_flags,
6771
sequence_count,
6872
data_length,
69-
})
73+
}, remaining))
7074
}
7175

7276
fn to_bytes(&self) -> ParseResult<Vec<u8>> {

0 commit comments

Comments
 (0)