diff options
Diffstat (limited to 'src/bin/rbw-agent/sock.rs')
-rw-r--r-- | src/bin/rbw-agent/sock.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/bin/rbw-agent/sock.rs b/src/bin/rbw-agent/sock.rs index 688f87a..bb2d6fb 100644 --- a/src/bin/rbw-agent/sock.rs +++ b/src/bin/rbw-agent/sock.rs @@ -26,14 +26,19 @@ impl Sock { Ok(()) } - pub async fn recv(&mut self) -> anyhow::Result<rbw::protocol::Request> { + pub async fn recv( + &mut self, + ) -> anyhow::Result<std::result::Result<rbw::protocol::Request, String>> + { let Self(sock) = self; let mut buf = tokio::io::BufStream::new(sock); let mut line = String::new(); buf.read_line(&mut line) .await .context("failed to read message from socket")?; - Ok(serde_json::from_str(&line).context("failed to parse message")?) + Ok(serde_json::from_str(&line).map_err(|e| { + format!("failed to parse message '{}': {}", line, e) + })) } } |