diff options
Diffstat (limited to 'ext/net/io.rs')
-rw-r--r-- | ext/net/io.rs | 57 |
1 files changed, 14 insertions, 43 deletions
diff --git a/ext/net/io.rs b/ext/net/io.rs index c9587c851..4c9fbe3d2 100644 --- a/ext/net/io.rs +++ b/ext/net/io.rs @@ -9,7 +9,6 @@ use deno_core::CancelHandle; use deno_core::CancelTryFuture; use deno_core::RcRef; use deno_core::Resource; -use deno_core::ZeroCopyBuf; use socket2::SockRef; use std::borrow::Cow; use std::rc::Rc; @@ -69,22 +68,16 @@ where pub async fn read( self: Rc<Self>, - mut buf: ZeroCopyBuf, - ) -> Result<(usize, ZeroCopyBuf), AnyError> { + data: &mut [u8], + ) -> Result<usize, AnyError> { let mut rd = self.rd_borrow_mut().await; - let nread = rd - .read(&mut buf) - .try_or_cancel(self.cancel_handle()) - .await?; - Ok((nread, buf)) + let nread = rd.read(data).try_or_cancel(self.cancel_handle()).await?; + Ok(nread) } - pub async fn write( - self: Rc<Self>, - buf: ZeroCopyBuf, - ) -> Result<usize, AnyError> { + pub async fn write(self: Rc<Self>, data: &[u8]) -> Result<usize, AnyError> { let mut wr = self.wr_borrow_mut().await; - let nwritten = wr.write(&buf).await?; + let nwritten = wr.write(data).await?; Ok(nwritten) } @@ -99,21 +92,13 @@ pub type TcpStreamResource = FullDuplexResource<tcp::OwnedReadHalf, tcp::OwnedWriteHalf>; impl Resource for TcpStreamResource { + deno_core::impl_readable_byob!(); + deno_core::impl_writable!(); + fn name(&self) -> Cow<str> { "tcpStream".into() } - fn read_return( - self: Rc<Self>, - buf: ZeroCopyBuf, - ) -> AsyncResult<(usize, ZeroCopyBuf)> { - Box::pin(self.read(buf)) - } - - fn write(self: Rc<Self>, buf: ZeroCopyBuf) -> AsyncResult<usize> { - Box::pin(self.write(buf)) - } - fn shutdown(self: Rc<Self>) -> AsyncResult<()> { Box::pin(self.shutdown()) } @@ -161,16 +146,10 @@ pub struct UnixStreamResource; #[cfg(not(unix))] impl UnixStreamResource { - pub async fn read( - self: Rc<Self>, - _buf: ZeroCopyBuf, - ) -> Result<(usize, ZeroCopyBuf), AnyError> { + fn read(self: Rc<Self>, data: &mut [u8]) -> AsyncResult<usize> { unreachable!() } - pub async fn write( - self: Rc<Self>, - _buf: ZeroCopyBuf, - ) -> Result<usize, AnyError> { + fn write(self: Rc<Self>, data: &[u8]) -> AsyncResult<usize> { unreachable!() } pub async fn shutdown(self: Rc<Self>) -> Result<(), AnyError> { @@ -182,21 +161,13 @@ impl UnixStreamResource { } impl Resource for UnixStreamResource { + deno_core::impl_readable_byob!(); + deno_core::impl_writable!(); + fn name(&self) -> Cow<str> { "unixStream".into() } - fn read_return( - self: Rc<Self>, - buf: ZeroCopyBuf, - ) -> AsyncResult<(usize, ZeroCopyBuf)> { - Box::pin(self.read(buf)) - } - - fn write(self: Rc<Self>, buf: ZeroCopyBuf) -> AsyncResult<usize> { - Box::pin(self.write(buf)) - } - fn shutdown(self: Rc<Self>) -> AsyncResult<()> { Box::pin(self.shutdown()) } |