use { super::errors::ProtocolControlMessageReaderError, crate::messages::define::SetPeerBandwidthProperties, byteorder::BigEndian, bytesio::bytes_reader::BytesReader, }; pub struct ProtocolControlMessageReader { pub reader: BytesReader, } impl ProtocolControlMessageReader { pub fn new(reader: BytesReader) -> Self { Self { reader } } pub fn read_set_chunk_size(&mut self) -> Result { let chunk_size = self.reader.read_u32::()?; Ok(chunk_size) } pub fn read_abort_message(&mut self) -> Result { let chunk_stream_id = self.reader.read_u32::()?; Ok(chunk_stream_id) } pub fn read_acknowledgement(&mut self) -> Result { let sequence_number = self.reader.read_u32::()?; Ok(sequence_number) } pub fn read_window_acknowledgement_size( &mut self, ) -> Result { let window_acknowledgement_size = self.reader.read_u32::()?; Ok(window_acknowledgement_size) } pub fn read_set_peer_bandwidth( &mut self, ) -> Result { let window_size = self.reader.read_u32::()?; let limit_type = self.reader.read_u8()?; Ok(SetPeerBandwidthProperties::new(window_size, limit_type)) } }