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-24 14:44:16 -0700
committerIan Douglas Scott <ian@iandouglasscott.com>2017-07-24 14:46:42 -0700
commit85ef570e0031d5b8a5b1b3adadcd9a70962b585e (patch)
tree1ec58fff77d03ec2a7da1b102a7d8be576946c70 /src/libstd/sys
parentb80e946101dd49dd1864b6229f9430c55036c7ce (diff)
downloadrust-85ef570e0031d5b8a5b1b3adadcd9a70962b585e.tar.gz
rust-85ef570e0031d5b8a5b1b3adadcd9a70962b585e.zip
Implement AsRawFd for Stdin, Stdout, and Stderr
Diffstat (limited to 'src/libstd/sys')
-rw-r--r--src/libstd/sys/redox/ext/io.rs16
-rw-r--r--src/libstd/sys/unix/ext/io.rs17
2 files changed, 33 insertions, 0 deletions
diff --git a/src/libstd/sys/redox/ext/io.rs b/src/libstd/sys/redox/ext/io.rs
index 8e7cc593dbd..9723b42354e 100644
--- a/src/libstd/sys/redox/ext/io.rs
+++ b/src/libstd/sys/redox/ext/io.rs
@@ -15,6 +15,7 @@
 use fs;
 use net;
 use sys;
+use io;
 use sys_common::{self, AsInner, FromInner, IntoInner};
 
 /// Raw file descriptors.
@@ -109,6 +110,21 @@ impl AsRawFd for net::UdpSocket {
     }
 }
 
+#[stable(feature = "rust1", since = "1.0.0")]
+impl AsRawFd for io::Stdin {
+    fn as_raw_fd(&self) -> RawFd { 0 }
+}
+
+#[stable(feature = "rust1", since = "1.0.0")]
+impl AsRawFd for io::Stdout {
+    fn as_raw_fd(&self) -> RawFd { 1 }
+}
+
+#[stable(feature = "rust1", since = "1.0.0")]
+impl AsRawFd for io::Stderr {
+    fn as_raw_fd(&self) -> RawFd { 2 }
+}
+
 #[stable(feature = "from_raw_os", since = "1.1.0")]
 impl FromRawFd for net::TcpStream {
     unsafe fn from_raw_fd(fd: RawFd) -> net::TcpStream {
diff --git a/src/libstd/sys/unix/ext/io.rs b/src/libstd/sys/unix/ext/io.rs
index 296235e173d..6fb0ef9c4fb 100644
--- a/src/libstd/sys/unix/ext/io.rs
+++ b/src/libstd/sys/unix/ext/io.rs
@@ -16,7 +16,9 @@ use fs;
 use net;
 use os::raw;
 use sys;
+use io;
 use sys_common::{self, AsInner, FromInner, IntoInner};
+use libc;
 
 /// Raw file descriptors.
 #[stable(feature = "rust1", since = "1.0.0")]
@@ -104,6 +106,21 @@ impl AsRawFd for net::UdpSocket {
     fn as_raw_fd(&self) -> RawFd { *self.as_inner().socket().as_inner() }
 }
 
+#[stable(feature = "rust1", since = "1.0.0")]
+impl AsRawFd for io::Stdin {
+    fn as_raw_fd(&self) -> RawFd { libc::STDIN_FILENO }
+}
+
+#[stable(feature = "rust1", since = "1.0.0")]
+impl AsRawFd for io::Stdout {
+    fn as_raw_fd(&self) -> RawFd { libc::STDOUT_FILENO }
+}
+
+#[stable(feature = "rust1", since = "1.0.0")]
+impl AsRawFd for io::Stderr {
+    fn as_raw_fd(&self) -> RawFd { libc::STDERR_FILENO }
+}
+
 #[stable(feature = "from_raw_os", since = "1.1.0")]
 impl FromRawFd for net::TcpStream {
     unsafe fn from_raw_fd(fd: RawFd) -> net::TcpStream {