1 use {
2     super::errors::ProtocolControlMessageReaderError,
3     crate::messages::define::SetPeerBandwidthProperties, byteorder::BigEndian,
4     bytesio::bytes_reader::BytesReader,
5 };
6 
7 pub struct ProtocolControlMessageReader {
8     pub reader: BytesReader,
9 }
10 
11 impl ProtocolControlMessageReader {
new(reader: BytesReader) -> Self12     pub fn new(reader: BytesReader) -> Self {
13         Self { reader }
14     }
read_set_chunk_size(&mut self) -> Result<u32, ProtocolControlMessageReaderError>15     pub fn read_set_chunk_size(&mut self) -> Result<u32, ProtocolControlMessageReaderError> {
16         let chunk_size = self.reader.read_u32::<BigEndian>()?;
17         Ok(chunk_size)
18     }
19 
read_abort_message(&mut self) -> Result<u32, ProtocolControlMessageReaderError>20     pub fn read_abort_message(&mut self) -> Result<u32, ProtocolControlMessageReaderError> {
21         let chunk_stream_id = self.reader.read_u32::<BigEndian>()?;
22         Ok(chunk_stream_id)
23     }
24 
read_acknowledgement(&mut self) -> Result<u32, ProtocolControlMessageReaderError>25     pub fn read_acknowledgement(&mut self) -> Result<u32, ProtocolControlMessageReaderError> {
26         let sequence_number = self.reader.read_u32::<BigEndian>()?;
27         Ok(sequence_number)
28     }
29 
read_window_acknowledgement_size( &mut self, ) -> Result<u32, ProtocolControlMessageReaderError>30     pub fn read_window_acknowledgement_size(
31         &mut self,
32     ) -> Result<u32, ProtocolControlMessageReaderError> {
33         let window_acknowledgement_size = self.reader.read_u32::<BigEndian>()?;
34         Ok(window_acknowledgement_size)
35     }
36 
read_set_peer_bandwidth( &mut self, ) -> Result<SetPeerBandwidthProperties, ProtocolControlMessageReaderError>37     pub fn read_set_peer_bandwidth(
38         &mut self,
39     ) -> Result<SetPeerBandwidthProperties, ProtocolControlMessageReaderError> {
40         let window_size = self.reader.read_u32::<BigEndian>()?;
41         let limit_type = self.reader.read_u8()?;
42 
43         Ok(SetPeerBandwidthProperties::new(window_size, limit_type))
44     }
45 }
46