use nom::{IResult, bytes::complete::take};
use crate::frame::components::SequenceControl;
pub fn parse_sequence_control(input: &[u8]) -> IResult<&[u8], SequenceControl> {
let (remaining, sequence_control_bytes) = take(2usize)(input)?;
let byte1 = sequence_control_bytes[0];
let byte2 = sequence_control_bytes[1];
let fragment_number = byte1 & 0b00001111;
let sequence_number = ((byte1 as u16 & 0b11110000) >> 4) | ((byte2 as u16) << 4);
Ok((
remaining,
SequenceControl {
fragment_number,
sequence_number,
},
))
}