Skip to content

Commit 73ca518

Browse files
committed
std: reorganize pipe implementations
1 parent 189007f commit 73ca518

File tree

34 files changed

+250
-376
lines changed

34 files changed

+250
-376
lines changed

library/std/src/io/pipe.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::io;
2-
use crate::sys::anonymous_pipe::{AnonPipe, pipe as pipe_inner};
2+
use crate::sys::pipe as imp;
33
use crate::sys_common::{FromInner, IntoInner};
44

55
/// Creates an anonymous pipe.
@@ -84,39 +84,39 @@ use crate::sys_common::{FromInner, IntoInner};
8484
#[stable(feature = "anonymous_pipe", since = "1.87.0")]
8585
#[inline]
8686
pub fn pipe() -> io::Result<(PipeReader, PipeWriter)> {
87-
pipe_inner().map(|(reader, writer)| (PipeReader(reader), PipeWriter(writer)))
87+
imp::pipe().map(|(reader, writer)| (PipeReader(reader), PipeWriter(writer)))
8888
}
8989

9090
/// Read end of an anonymous pipe.
9191
#[stable(feature = "anonymous_pipe", since = "1.87.0")]
9292
#[derive(Debug)]
93-
pub struct PipeReader(pub(crate) AnonPipe);
93+
pub struct PipeReader(pub(crate) imp::Pipe);
9494

9595
/// Write end of an anonymous pipe.
9696
#[stable(feature = "anonymous_pipe", since = "1.87.0")]
9797
#[derive(Debug)]
98-
pub struct PipeWriter(pub(crate) AnonPipe);
98+
pub struct PipeWriter(pub(crate) imp::Pipe);
9999

100-
impl FromInner<AnonPipe> for PipeReader {
101-
fn from_inner(inner: AnonPipe) -> Self {
100+
impl FromInner<imp::Pipe> for PipeReader {
101+
fn from_inner(inner: imp::Pipe) -> Self {
102102
Self(inner)
103103
}
104104
}
105105

106-
impl IntoInner<AnonPipe> for PipeReader {
107-
fn into_inner(self) -> AnonPipe {
106+
impl IntoInner<imp::Pipe> for PipeReader {
107+
fn into_inner(self) -> imp::Pipe {
108108
self.0
109109
}
110110
}
111111

112-
impl FromInner<AnonPipe> for PipeWriter {
113-
fn from_inner(inner: AnonPipe) -> Self {
112+
impl FromInner<imp::Pipe> for PipeWriter {
113+
fn from_inner(inner: imp::Pipe) -> Self {
114114
Self(inner)
115115
}
116116
}
117117

118-
impl IntoInner<AnonPipe> for PipeWriter {
119-
fn into_inner(self) -> AnonPipe {
118+
impl IntoInner<imp::Pipe> for PipeWriter {
119+
fn into_inner(self) -> imp::Pipe {
120120
self.0
121121
}
122122
}

library/std/src/os/unix/process.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use crate::ffi::OsStr;
88
use crate::os::unix::io::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd};
99
use crate::path::Path;
1010
use crate::sealed::Sealed;
11+
use crate::sys::process::ChildPipe;
1112
use crate::sys_common::{AsInner, AsInnerMut, FromInner, IntoInner};
1213
use crate::{io, process, sys};
1314

@@ -504,7 +505,7 @@ impl From<crate::process::ChildStdin> for OwnedFd {
504505
/// Takes ownership of a [`ChildStdin`](crate::process::ChildStdin)'s file descriptor.
505506
#[inline]
506507
fn from(child_stdin: crate::process::ChildStdin) -> OwnedFd {
507-
child_stdin.into_inner().into_inner().into_inner()
508+
child_stdin.into_inner().into_inner()
508509
}
509510
}
510511

@@ -516,8 +517,7 @@ impl From<crate::process::ChildStdin> for OwnedFd {
516517
impl From<OwnedFd> for process::ChildStdin {
517518
#[inline]
518519
fn from(fd: OwnedFd) -> process::ChildStdin {
519-
let fd = sys::fd::FileDesc::from_inner(fd);
520-
let pipe = sys::pipe::AnonPipe::from_inner(fd);
520+
let pipe = ChildPipe::from_inner(fd);
521521
process::ChildStdin::from_inner(pipe)
522522
}
523523
}
@@ -535,7 +535,7 @@ impl From<crate::process::ChildStdout> for OwnedFd {
535535
/// Takes ownership of a [`ChildStdout`](crate::process::ChildStdout)'s file descriptor.
536536
#[inline]
537537
fn from(child_stdout: crate::process::ChildStdout) -> OwnedFd {
538-
child_stdout.into_inner().into_inner().into_inner()
538+
child_stdout.into_inner().into_inner()
539539
}
540540
}
541541

@@ -547,8 +547,7 @@ impl From<crate::process::ChildStdout> for OwnedFd {
547547
impl From<OwnedFd> for process::ChildStdout {
548548
#[inline]
549549
fn from(fd: OwnedFd) -> process::ChildStdout {
550-
let fd = sys::fd::FileDesc::from_inner(fd);
551-
let pipe = sys::pipe::AnonPipe::from_inner(fd);
550+
let pipe = ChildPipe::from_inner(fd);
552551
process::ChildStdout::from_inner(pipe)
553552
}
554553
}
@@ -566,7 +565,7 @@ impl From<crate::process::ChildStderr> for OwnedFd {
566565
/// Takes ownership of a [`ChildStderr`](crate::process::ChildStderr)'s file descriptor.
567566
#[inline]
568567
fn from(child_stderr: crate::process::ChildStderr) -> OwnedFd {
569-
child_stderr.into_inner().into_inner().into_inner()
568+
child_stderr.into_inner().into_inner()
570569
}
571570
}
572571

@@ -578,8 +577,7 @@ impl From<crate::process::ChildStderr> for OwnedFd {
578577
impl From<OwnedFd> for process::ChildStderr {
579578
#[inline]
580579
fn from(fd: OwnedFd) -> process::ChildStderr {
581-
let fd = sys::fd::FileDesc::from_inner(fd);
582-
let pipe = sys::pipe::AnonPipe::from_inner(fd);
580+
let pipe = ChildPipe::from_inner(fd);
583581
process::ChildStderr::from_inner(pipe)
584582
}
585583
}

library/std/src/os/windows/process.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ impl IntoRawHandle for process::ChildStderr {
117117
impl From<OwnedHandle> for process::ChildStdin {
118118
fn from(handle: OwnedHandle) -> process::ChildStdin {
119119
let handle = sys::handle::Handle::from_inner(handle);
120-
let pipe = sys::pipe::AnonPipe::from_inner(handle);
120+
let pipe = sys::process::ChildPipe::from_inner(handle);
121121
process::ChildStdin::from_inner(pipe)
122122
}
123123
}
@@ -130,7 +130,7 @@ impl From<OwnedHandle> for process::ChildStdin {
130130
impl From<OwnedHandle> for process::ChildStdout {
131131
fn from(handle: OwnedHandle) -> process::ChildStdout {
132132
let handle = sys::handle::Handle::from_inner(handle);
133-
let pipe = sys::pipe::AnonPipe::from_inner(handle);
133+
let pipe = sys::process::ChildPipe::from_inner(handle);
134134
process::ChildStdout::from_inner(pipe)
135135
}
136136
}
@@ -143,7 +143,7 @@ impl From<OwnedHandle> for process::ChildStdout {
143143
impl From<OwnedHandle> for process::ChildStderr {
144144
fn from(handle: OwnedHandle) -> process::ChildStderr {
145145
let handle = sys::handle::Handle::from_inner(handle);
146-
let pipe = sys::pipe::AnonPipe::from_inner(handle);
146+
let pipe = sys::process::ChildPipe::from_inner(handle);
147147
process::ChildStderr::from_inner(pipe)
148148
}
149149
}

library/std/src/process.rs

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,6 @@ use crate::io::prelude::*;
166166
use crate::io::{self, BorrowedCursor, IoSlice, IoSliceMut};
167167
use crate::num::NonZero;
168168
use crate::path::Path;
169-
use crate::sys::pipe::{AnonPipe, read2};
170169
use crate::sys::process as imp;
171170
use crate::sys_common::{AsInner, AsInnerMut, FromInner, IntoInner};
172171
use crate::{fmt, fs, str};
@@ -300,9 +299,9 @@ impl fmt::Debug for Child {
300299
///
301300
/// Used to pass pipe handles between this module and [`imp`].
302301
pub(crate) struct StdioPipes {
303-
pub stdin: Option<AnonPipe>,
304-
pub stdout: Option<AnonPipe>,
305-
pub stderr: Option<AnonPipe>,
302+
pub stdin: Option<imp::ChildPipe>,
303+
pub stdout: Option<imp::ChildPipe>,
304+
pub stderr: Option<imp::ChildPipe>,
306305
}
307306

308307
/// A handle to a child process's standard input (stdin).
@@ -317,7 +316,7 @@ pub(crate) struct StdioPipes {
317316
/// [dropped]: Drop
318317
#[stable(feature = "process", since = "1.0.0")]
319318
pub struct ChildStdin {
320-
inner: AnonPipe,
319+
inner: imp::ChildPipe,
321320
}
322321

323322
// In addition to the `impl`s here, `ChildStdin` also has `impl`s for
@@ -366,21 +365,21 @@ impl Write for &ChildStdin {
366365
}
367366
}
368367

369-
impl AsInner<AnonPipe> for ChildStdin {
368+
impl AsInner<imp::ChildPipe> for ChildStdin {
370369
#[inline]
371-
fn as_inner(&self) -> &AnonPipe {
370+
fn as_inner(&self) -> &imp::ChildPipe {
372371
&self.inner
373372
}
374373
}
375374

376-
impl IntoInner<AnonPipe> for ChildStdin {
377-
fn into_inner(self) -> AnonPipe {
375+
impl IntoInner<imp::ChildPipe> for ChildStdin {
376+
fn into_inner(self) -> imp::ChildPipe {
378377
self.inner
379378
}
380379
}
381380

382-
impl FromInner<AnonPipe> for ChildStdin {
383-
fn from_inner(pipe: AnonPipe) -> ChildStdin {
381+
impl FromInner<imp::ChildPipe> for ChildStdin {
382+
fn from_inner(pipe: imp::ChildPipe) -> ChildStdin {
384383
ChildStdin { inner: pipe }
385384
}
386385
}
@@ -403,7 +402,7 @@ impl fmt::Debug for ChildStdin {
403402
/// [dropped]: Drop
404403
#[stable(feature = "process", since = "1.0.0")]
405404
pub struct ChildStdout {
406-
inner: AnonPipe,
405+
inner: imp::ChildPipe,
407406
}
408407

409408
// In addition to the `impl`s here, `ChildStdout` also has `impl`s for
@@ -436,21 +435,21 @@ impl Read for ChildStdout {
436435
}
437436
}
438437

439-
impl AsInner<AnonPipe> for ChildStdout {
438+
impl AsInner<imp::ChildPipe> for ChildStdout {
440439
#[inline]
441-
fn as_inner(&self) -> &AnonPipe {
440+
fn as_inner(&self) -> &imp::ChildPipe {
442441
&self.inner
443442
}
444443
}
445444

446-
impl IntoInner<AnonPipe> for ChildStdout {
447-
fn into_inner(self) -> AnonPipe {
445+
impl IntoInner<imp::ChildPipe> for ChildStdout {
446+
fn into_inner(self) -> imp::ChildPipe {
448447
self.inner
449448
}
450449
}
451450

452-
impl FromInner<AnonPipe> for ChildStdout {
453-
fn from_inner(pipe: AnonPipe) -> ChildStdout {
451+
impl FromInner<imp::ChildPipe> for ChildStdout {
452+
fn from_inner(pipe: imp::ChildPipe) -> ChildStdout {
454453
ChildStdout { inner: pipe }
455454
}
456455
}
@@ -473,7 +472,7 @@ impl fmt::Debug for ChildStdout {
473472
/// [dropped]: Drop
474473
#[stable(feature = "process", since = "1.0.0")]
475474
pub struct ChildStderr {
476-
inner: AnonPipe,
475+
inner: imp::ChildPipe,
477476
}
478477

479478
// In addition to the `impl`s here, `ChildStderr` also has `impl`s for
@@ -506,21 +505,21 @@ impl Read for ChildStderr {
506505
}
507506
}
508507

509-
impl AsInner<AnonPipe> for ChildStderr {
508+
impl AsInner<imp::ChildPipe> for ChildStderr {
510509
#[inline]
511-
fn as_inner(&self) -> &AnonPipe {
510+
fn as_inner(&self) -> &imp::ChildPipe {
512511
&self.inner
513512
}
514513
}
515514

516-
impl IntoInner<AnonPipe> for ChildStderr {
517-
fn into_inner(self) -> AnonPipe {
515+
impl IntoInner<imp::ChildPipe> for ChildStderr {
516+
fn into_inner(self) -> imp::ChildPipe {
518517
self.inner
519518
}
520519
}
521520

522-
impl FromInner<AnonPipe> for ChildStderr {
523-
fn from_inner(pipe: AnonPipe) -> ChildStderr {
521+
impl FromInner<imp::ChildPipe> for ChildStderr {
522+
fn from_inner(pipe: imp::ChildPipe) -> ChildStderr {
524523
ChildStderr { inner: pipe }
525524
}
526525
}
@@ -2354,7 +2353,7 @@ impl Child {
23542353
res.unwrap();
23552354
}
23562355
(Some(out), Some(err)) => {
2357-
let res = read2(out.inner, &mut stdout, err.inner, &mut stderr);
2356+
let res = imp::read_output(out.inner, &mut stdout, err.inner, &mut stderr);
23582357
res.unwrap();
23592358
}
23602359
}

library/std/src/sys/anonymous_pipe/unix.rs

Lines changed: 0 additions & 11 deletions
This file was deleted.

library/std/src/sys/anonymous_pipe/unsupported.rs

Lines changed: 0 additions & 7 deletions
This file was deleted.

library/std/src/sys/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ mod pal;
1313
mod alloc;
1414
mod personality;
1515

16-
pub mod anonymous_pipe;
1716
pub mod args;
1817
pub mod backtrace;
1918
pub mod cmath;
@@ -26,6 +25,7 @@ pub mod io;
2625
pub mod net;
2726
pub mod os_str;
2827
pub mod path;
28+
pub mod pipe;
2929
pub mod platform_version;
3030
pub mod process;
3131
pub mod random;

library/std/src/sys/pal/hermit/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ use crate::sys::env;
2323

2424
pub mod futex;
2525
pub mod os;
26-
#[path = "../unsupported/pipe.rs"]
27-
pub mod pipe;
2826
pub mod time;
2927

3028
pub fn unsupported<T>() -> crate::io::Result<T> {

library/std/src/sys/pal/sgx/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ use crate::sync::atomic::{Atomic, AtomicBool, Ordering};
1111
pub mod abi;
1212
mod libunwind_integration;
1313
pub mod os;
14-
#[path = "../unsupported/pipe.rs"]
15-
pub mod pipe;
1614
pub mod thread_parking;
1715
pub mod time;
1816
pub mod waitqueue;

library/std/src/sys/pal/solid/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ pub mod itron {
1818
// `crate::sys::error`
1919
pub(crate) mod error;
2020
pub mod os;
21-
#[path = "../unsupported/pipe.rs"]
22-
pub mod pipe;
2321
pub use self::itron::thread_parking;
2422
pub mod time;
2523

0 commit comments

Comments
 (0)