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

Method read

virtio-devices/src/vsock/csm/connection.rs:730–746  ·  view source on GitHub ↗
(&mut self, data: &mut [u8])

Source from the content-addressed store, hash-verified

728
729 impl Read for TestStream {
730 fn read(&mut self, data: &mut [u8]) -> IoResult<usize> {
731 match self.read_state {
732 StreamState::Closed => Ok(0),
733 StreamState::Error(kind) => Err(IoError::new(kind, "whatevs")),
734 StreamState::Ready => {
735 if self.read_buf.is_empty() {
736 return Err(IoError::new(ErrorKind::WouldBlock, "EAGAIN"));
737 }
738 let len = std::cmp::min(data.len(), self.read_buf.len());
739 assert_ne!(len, 0);
740 data[..len].copy_from_slice(&self.read_buf[..len]);
741 self.read_buf = self.read_buf.split_off(len);
742 Ok(len)
743 }
744 StreamState::WouldBlock => Err(IoError::new(ErrorKind::WouldBlock, "EAGAIN")),
745 }
746 }
747 }
748
749 impl Write for TestStream {

Callers 6

runMethod · 0.45
handle_eventMethod · 0.45
stateMethod · 0.45
local_connectMethod · 0.45
recv_pktMethod · 0.45

Calls 3

newFunction · 0.85
is_emptyMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected