about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2015-02-23 15:26:18 -0800
committerAlex Crichton <alex@alexcrichton.com>2015-02-23 15:26:18 -0800
commit537d6946e4570a9425aa5c881454e67bedf210b0 (patch)
tree20ed37eae83ae9481e8a377f5ecb37bda3fa260f /src/libstd
parent91a5a1ab4ad054c8dccf49f6f409542f82683cfc (diff)
downloadrust-537d6946e4570a9425aa5c881454e67bedf210b0.tar.gz
rust-537d6946e4570a9425aa5c881454e67bedf210b0.zip
std: Expose a `mode` accessor for Permissions on unix
Currently we have a `set_mode` mutator, so this just adds the pairing of a
`mode` accessor to read the value.

Closes #22738
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/fs.rs4
-rw-r--r--src/libstd/sys/unix/ext.rs3
-rw-r--r--src/libstd/sys/unix/fs2.rs1
3 files changed, 8 insertions, 0 deletions
diff --git a/src/libstd/fs.rs b/src/libstd/fs.rs
index 98c1b50a9bf..c6ceced4598 100644
--- a/src/libstd/fs.rs
+++ b/src/libstd/fs.rs
@@ -325,6 +325,10 @@ impl FromInner<fs_imp::FilePermissions> for Permissions {
     }
 }
 
+impl AsInner<fs_imp::FilePermissions> for Permissions {
+    fn as_inner(&self) -> &fs_imp::FilePermissions { &self.0 }
+}
+
 impl Iterator for ReadDir {
     type Item = io::Result<DirEntry>;
 
diff --git a/src/libstd/sys/unix/ext.rs b/src/libstd/sys/unix/ext.rs
index b8b9dcfb3c6..3f9da6e3c51 100644
--- a/src/libstd/sys/unix/ext.rs
+++ b/src/libstd/sys/unix/ext.rs
@@ -173,10 +173,13 @@ impl OsStrExt for OsStr {
 
 // Unix-specific extensions to `Permissions`
 pub trait PermissionsExt {
+    fn mode(&self) -> i32;
     fn set_mode(&mut self, mode: i32);
 }
 
 impl PermissionsExt for Permissions {
+    fn mode(&self) -> i32 { self.as_inner().mode() }
+
     fn set_mode(&mut self, mode: i32) {
         *self = FromInner::from_inner(FromInner::from_inner(mode));
     }
diff --git a/src/libstd/sys/unix/fs2.rs b/src/libstd/sys/unix/fs2.rs
index 92a47c6c385..d77e76241cc 100644
--- a/src/libstd/sys/unix/fs2.rs
+++ b/src/libstd/sys/unix/fs2.rs
@@ -86,6 +86,7 @@ impl FilePermissions {
             self.mode |= 0o222;
         }
     }
+    pub fn mode(&self) -> i32 { self.mode as i32 }
 }
 
 impl FromInner<i32> for FilePermissions {