diff options
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/fs/mod.rs | 4 | ||||
| -rw-r--r-- | src/libstd/sys/unix/ext.rs | 3 | ||||
| -rw-r--r-- | src/libstd/sys/unix/fs2.rs | 1 |
3 files changed, 8 insertions, 0 deletions
diff --git a/src/libstd/fs/mod.rs b/src/libstd/fs/mod.rs index 3c9eef8c30f..64ec025a5c4 100644 --- a/src/libstd/fs/mod.rs +++ b/src/libstd/fs/mod.rs @@ -329,6 +329,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 c6b9c2cba52..72e0b8dd36c 100644 --- a/src/libstd/sys/unix/fs2.rs +++ b/src/libstd/sys/unix/fs2.rs @@ -90,6 +90,7 @@ impl FilePermissions { self.mode |= 0o222; } } + pub fn mode(&self) -> i32 { self.mode as i32 } } impl FromInner<i32> for FilePermissions { |
