diff options
| author | bors <bors@rust-lang.org> | 2017-08-04 02:15:04 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-08-04 02:15:04 +0000 |
| commit | eae446c4dcac741558ccd72c83420025e6de4653 (patch) | |
| tree | bf42c8258093adfd3fb51fd92e598e975f3b34fd /src/libstd/sys/windows | |
| parent | 1d2a6df38442a297b4ae25899700e29d1f150bb0 (diff) | |
| parent | 64e426e8e9fff27a7dc0a1bdf297bf5fd3f10b15 (diff) | |
| download | rust-eae446c4dcac741558ccd72c83420025e6de4653.tar.gz rust-eae446c4dcac741558ccd72c83420025e6de4653.zip | |
Auto merge of #43459 - ids1024:asrawfd, r=alexcrichton
Implement AsRawFd for Stdin, Stdout, and Stderr https://github.com/rust-lang/rfcs/issues/2074
Diffstat (limited to 'src/libstd/sys/windows')
| -rw-r--r-- | src/libstd/sys/windows/ext/io.rs | 22 |
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..90128dda088 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 { |
