summary refs log tree commit diff
path: root/src/libstd/sys/windows
diff options
context:
space:
mode:
authorChris Wong <lambda.fairy@gmail.com>2015-04-19 21:27:19 +1200
committerChris Wong <lambda.fairy@gmail.com>2015-04-21 17:13:36 +1200
commit1131bc0a0f9d4ce920f239dccbd0fcfe1c940548 (patch)
treeb020e8d15fa077748f031c429886d95415ac7a14 /src/libstd/sys/windows
parent21c48c3e823ed21266e96779d700946db957a965 (diff)
downloadrust-1131bc0a0f9d4ce920f239dccbd0fcfe1c940548.tar.gz
rust-1131bc0a0f9d4ce920f239dccbd0fcfe1c940548.zip
Implement Debug for File
This patch adds a `Debug` impl for `std::fs::File`.

On all platforms (Unix and Windows) it shows the file descriptor.

On Linux, it displays the path and access mode as well.

Ideally we should show the path/mode for all platforms, not just Linux,
but this will do for now.

cc #24570
Diffstat (limited to 'src/libstd/sys/windows')
-rw-r--r--src/libstd/sys/windows/fs2.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libstd/sys/windows/fs2.rs b/src/libstd/sys/windows/fs2.rs
index 9645c51ec0b..b0515a71229 100644
--- a/src/libstd/sys/windows/fs2.rs
+++ b/src/libstd/sys/windows/fs2.rs
@@ -14,6 +14,7 @@ use os::windows::prelude::*;
 
 use default::Default;
 use ffi::{OsString, AsOsStr};
+use fmt;
 use io::{self, Error, SeekFrom};
 use libc::{self, HANDLE};
 use mem;
@@ -271,6 +272,15 @@ impl FromInner<libc::HANDLE> for File {
     }
 }
 
+impl fmt::Debug for File {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        // FIXME(#24570): add more info here (e.g. path, mode)
+        f.debug_struct("File")
+            .field("handle", &self.handle.raw())
+            .finish()
+    }
+}
+
 pub fn to_utf16(s: &Path) -> Vec<u16> {
     s.as_os_str().encode_wide().chain(Some(0).into_iter()).collect()
 }