aboutsummaryrefslogtreecommitdiff
path: root/net/src/transports/tcp.rs
diff options
context:
space:
mode:
authorhozan23 <hozan23@proton.me>2023-11-18 13:36:19 +0300
committerhozan23 <hozan23@proton.me>2023-11-19 04:37:50 +0300
commit938b29d418a9df2f93ee273a394f34adc99ea25d (patch)
treef8adfeede7c6f56091ef6a018820fa0b52f38bf3 /net/src/transports/tcp.rs
parent0d6c8ad2ed66ff7bd1078be9ea7b582262a12d86 (diff)
net: improve Conn API
Diffstat (limited to 'net/src/transports/tcp.rs')
-rw-r--r--net/src/transports/tcp.rs17
1 files changed, 10 insertions, 7 deletions
diff --git a/net/src/transports/tcp.rs b/net/src/transports/tcp.rs
index 5ff7b28..9b2b928 100644
--- a/net/src/transports/tcp.rs
+++ b/net/src/transports/tcp.rs
@@ -10,7 +10,7 @@ use crate::{
connection::Connection,
endpoint::{Addr, Endpoint, Port},
listener::Listener,
- Result,
+ Error, Result,
};
/// TCP network connection implementations of the `Connection` trait.
@@ -42,14 +42,17 @@ impl Connection for TcpConn {
Ok(Endpoint::new_tcp_addr(&self.inner.local_addr()?))
}
- async fn recv(&self, buf: &mut [u8]) -> Result<usize> {
- self.read.lock().await.read_exact(buf).await?;
- Ok(buf.len())
+ async fn read(&self, buf: &mut [u8]) -> Result<usize> {
+ self.read.lock().await.read(buf).await.map_err(Error::from)
}
- async fn send(&self, buf: &[u8]) -> Result<usize> {
- self.write.lock().await.write_all(buf).await?;
- Ok(buf.len())
+ async fn write(&self, buf: &[u8]) -> Result<usize> {
+ self.write
+ .lock()
+ .await
+ .write(buf)
+ .await
+ .map_err(Error::from)
}
}