MCPcopy Create free account
hub / github.com/cloud-hypervisor/cloud-hypervisor / fill_buffer

Method fill_buffer

serial_buffer/src/lib.rs:30–44  ·  view source on GitHub ↗
(&mut self, buf: &[u8])

Source from the content-addressed store, hash-verified

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
47impl Write for SerialBuffer {

Callers 1

writeMethod · 0.80

Calls 2

lenMethod · 0.45
extendMethod · 0.45

Tested by

no test coverage detected