Enable std::io::copy specialisation for `std::pipe::{PipeReader, Pi… · model-checking/verify-rust-std@02bf0de (original) (raw)

Original file line number Diff line number Diff line change
@@ -54,6 +54,7 @@ use crate:🥅:TcpStream;
54 54 use crate::os::unix::fs::FileTypeExt;
55 55 use crate::os::unix::io::{AsRawFd, FromRawFd, RawFd};
56 56 use crate::os::unix:🥅:UnixStream;
57 +use crate::pipe::{PipeReader, PipeWriter};
57 58 use crate::process::{ChildStderr, ChildStdin, ChildStdout};
58 59 use crate::ptr;
59 60 use crate::sync::atomic::{AtomicBool, AtomicU8, Ordering};
@@ -404,6 +405,30 @@ impl CopyWrite for &UnixStream {
404 405 }
405 406 }
406 407
408 +impl CopyRead for PipeReader {
409 +fn properties(&self) -> CopyParams {
410 +CopyParams(FdMeta::Pipe, Some(self.as_raw_fd()))
411 +}
412 +}
413 +
414 +impl CopyRead for &PipeReader {
415 +fn properties(&self) -> CopyParams {
416 +CopyParams(FdMeta::Pipe, Some(self.as_raw_fd()))
417 +}
418 +}
419 +
420 +impl CopyWrite for PipeWriter {
421 +fn properties(&self) -> CopyParams {
422 +CopyParams(FdMeta::Pipe, Some(self.as_raw_fd()))
423 +}
424 +}
425 +
426 +impl CopyWrite for &PipeWriter {
427 +fn properties(&self) -> CopyParams {
428 +CopyParams(FdMeta::Pipe, Some(self.as_raw_fd()))
429 +}
430 +}
431 +
407 432 impl CopyWrite for ChildStdin {
408 433 fn properties(&self) -> CopyParams {
409 434 CopyParams(FdMeta::Pipe, Some(self.as_raw_fd()))