Encode the frame into a byte vector.
(&self)
| 193 | |
| 194 | /// Encode the frame into a byte vector. |
| 195 | pub fn encode(&self) -> Vec<u8> { |
| 196 | let mut encoded = Vec::with_capacity(16 + 2 + 4 + self.data.len() + 1); |
| 197 | encoded.extend_from_slice(&self.id); |
| 198 | encoded.extend_from_slice(&self.number.to_be_bytes()); |
| 199 | encoded.extend_from_slice(&(self.data.len() as u32).to_be_bytes()); |
| 200 | encoded.extend_from_slice(&self.data); |
| 201 | encoded.push(self.is_last as u8); |
| 202 | encoded |
| 203 | } |
| 204 | |
| 205 | /// Decode a frame from a byte vector. |
| 206 | pub fn decode(encoded: &[u8]) -> Result<(usize, Self), FrameDecodingError> { |