(&mut self, buf: &[u8])
| 28 | } |
| 29 | |
| 30 | fn fill_buffer(&mut self, buf: &[u8]) { |
| 31 | if buf.len() >= MAX_BUFFER_SIZE { |
| 32 | let offset = buf.len() - MAX_BUFFER_SIZE; |
| 33 | self.buffer = VecDeque::from(buf[offset..].to_vec()); |
| 34 | return; |
| 35 | } |
| 36 | |
| 37 | let num_allowed_bytes = MAX_BUFFER_SIZE - buf.len(); |
| 38 | if self.buffer.len() > num_allowed_bytes { |
| 39 | let num_bytes_to_remove = self.buffer.len() - num_allowed_bytes; |
| 40 | self.buffer.drain(..num_bytes_to_remove); |
| 41 | } |
| 42 | |
| 43 | self.buffer.extend(buf); |
| 44 | } |
| 45 | } |
| 46 | |
| 47 | impl Write for SerialBuffer { |