summary refs log tree commit diff
path: root/library/std/src/sys
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2021-11-08 18:38:04 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2023-08-07 15:18:58 +0100
commit1bab95bf7f82a56cef02299dcc7b12e68daf4c51 (patch)
tree2f0b2758695bb10a8a4c606b1121570091331b12 /library/std/src/sys
parentdeda7d330177ead49411da1005c9902430688094 (diff)
downloadrust-1bab95bf7f82a56cef02299dcc7b12e68daf4c51.tar.gz
rust-1bab95bf7f82a56cef02299dcc7b12e68daf4c51.zip
std::process (windows): Implement From<io::Stdout> etc. for imp::Stdio
This involves a new variant `imp;::Stdio::InheritSpecific`.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'library/std/src/sys')
-rw-r--r--library/std/src/sys/windows/process.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/library/std/src/sys/windows/process.rs b/library/std/src/sys/windows/process.rs
index 4d92caee852..02ca4fc615a 100644
--- a/library/std/src/sys/windows/process.rs
+++ b/library/std/src/sys/windows/process.rs
@@ -170,6 +170,7 @@ pub struct Command {
 
 pub enum Stdio {
     Inherit,
+    InheritSpecific { from_stdio_id: c::DWORD },
     Null,
     MakePipe,
     Pipe(AnonPipe),
@@ -533,6 +534,7 @@ impl Stdio {
         };
         match *self {
             Stdio::Inherit => use_stdio_id(stdio_id),
+            Stdio::InheritSpecific { from_stdio_id } => use_stdio_id(from_stdio_id),
 
             Stdio::MakePipe => {
                 let ours_readable = stdio_id != c::STD_INPUT_HANDLE;
@@ -580,6 +582,18 @@ impl From<File> for Stdio {
     }
 }
 
+impl From<io::Stdout> for Stdio {
+    fn from(_: io::Stdout) -> Stdio {
+        Stdio::InheritSpecific { from_stdio_id: c::STD_OUTPUT_HANDLE }
+    }
+}
+
+impl From<io::Stderr> for Stdio {
+    fn from(_: io::Stderr) -> Stdio {
+        Stdio::InheritSpecific { from_stdio_id: c::STD_ERROR_HANDLE }
+    }
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // Processes
 ////////////////////////////////////////////////////////////////////////////////