about summary refs log tree commit diff
path: root/src/libstd/sys
diff options
context:
space:
mode:
authorIan Douglas Scott <ian@iandouglasscott.com>2017-07-28 16:34:16 -0700
committerIan Douglas Scott <ian@iandouglasscott.com>2017-08-03 12:57:53 -0700
commiteac01f123d20f4a606496f3f0d1511edffaf7b88 (patch)
tree8cb9d04756c9bbdafaacf6d496e19d61399576ee /src/libstd/sys
parente9c55d1f79160ab2c8d34ebf0a7533bf426d8b95 (diff)
downloadrust-eac01f123d20f4a606496f3f0d1511edffaf7b88.tar.gz
rust-eac01f123d20f4a606496f3f0d1511edffaf7b88.zip
Implement AsRawHandle for Std* on Windows
Diffstat (limited to 'src/libstd/sys')
-rw-r--r--src/libstd/sys/windows/ext/io.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libstd/sys/windows/ext/io.rs b/src/libstd/sys/windows/ext/io.rs
index 2ddb6c65fd3..829e44cebf7 100644
--- a/src/libstd/sys/windows/ext/io.rs
+++ b/src/libstd/sys/windows/ext/io.rs
@@ -15,6 +15,7 @@ use os::windows::raw;
 use net;
 use sys_common::{self, AsInner, FromInner, IntoInner};
 use sys;
+use io;
 use sys::c;
 
 /// Raw HANDLEs.
@@ -71,6 +72,27 @@ impl AsRawHandle for fs::File {
     }
 }
 
+#[stable(feature = "asraw_stdio", since = "1.21.0")]
+impl AsRawHandle for io::Stdin {
+    fn as_raw_handle(&self) -> RawHandle {
+        unsafe { c::GetStdHandle(c::STD_INPUT_HANDLE) } as RawHandle
+    }
+}
+
+#[stable(feature = "asraw_stdio", since = "1.21.0")]
+impl AsRawHandle for io::Stdout {
+    fn as_raw_handle(&self) -> RawHandle {
+        unsafe { c::GetStdHandle(c::STD_OUTPUT_HANDLE) } as RawHandle
+    }
+}
+
+#[stable(feature = "asraw_stdio", since = "1.21.0")]
+impl AsRawHandle for io::Stderr {
+    fn as_raw_handle(&self) -> RawHandle {
+        unsafe { c::GetStdHandle(c::STD_ERROR_HANDLE) } as RawHandle
+    }
+}
+
 #[stable(feature = "from_raw_os", since = "1.1.0")]
 impl FromRawHandle for fs::File {
     unsafe fn from_raw_handle(handle: RawHandle) -> fs::File {