diff options
| author | Jiahao XU <Jiahao_XU@outlook.com> | 2024-07-28 22:20:01 +1000 |
|---|---|---|
| committer | Jiahao XU <Jiahao_XU@outlook.com> | 2024-07-28 22:20:01 +1000 |
| commit | 649b4310a3f0913a72e6a83cb54482d994ed248a (patch) | |
| tree | a7a931513c516992aae608d7484c259a2e43354c | |
| parent | 3954398882707ce3f683722795d1a7111312b5d9 (diff) | |
| download | rust-649b4310a3f0913a72e6a83cb54482d994ed248a.tar.gz rust-649b4310a3f0913a72e6a83cb54482d994ed248a.zip | |
Enable `std::io::copy` specialisation for `std::pipe::{PipeReader, PipeWriter}`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
| -rw-r--r-- | library/std/src/sys/pal/unix/kernel_copy.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/library/std/src/sys/pal/unix/kernel_copy.rs b/library/std/src/sys/pal/unix/kernel_copy.rs index cd38b7c07e2..ae6b88b4475 100644 --- a/library/std/src/sys/pal/unix/kernel_copy.rs +++ b/library/std/src/sys/pal/unix/kernel_copy.rs @@ -54,6 +54,7 @@ use crate::net::TcpStream; use crate::os::unix::fs::FileTypeExt; use crate::os::unix::io::{AsRawFd, FromRawFd, RawFd}; use crate::os::unix::net::UnixStream; +use crate::pipe::{PipeReader, PipeWriter}; use crate::process::{ChildStderr, ChildStdin, ChildStdout}; use crate::ptr; use crate::sync::atomic::{AtomicBool, AtomicU8, Ordering}; @@ -404,6 +405,30 @@ impl CopyWrite for &UnixStream { } } +impl CopyRead for PipeReader { + fn properties(&self) -> CopyParams { + CopyParams(FdMeta::Pipe, Some(self.as_raw_fd())) + } +} + +impl CopyRead for &PipeReader { + fn properties(&self) -> CopyParams { + CopyParams(FdMeta::Pipe, Some(self.as_raw_fd())) + } +} + +impl CopyWrite for PipeWriter { + fn properties(&self) -> CopyParams { + CopyParams(FdMeta::Pipe, Some(self.as_raw_fd())) + } +} + +impl CopyWrite for &PipeWriter { + fn properties(&self) -> CopyParams { + CopyParams(FdMeta::Pipe, Some(self.as_raw_fd())) + } +} + impl CopyWrite for ChildStdin { fn properties(&self) -> CopyParams { CopyParams(FdMeta::Pipe, Some(self.as_raw_fd())) |
