Skip to content

Commit 537d694

Browse files
committed
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 rust-lang#22738
1 parent 91a5a1a commit 537d694

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

src/libstd/fs.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,10 @@ impl FromInner<fs_imp::FilePermissions> for Permissions {
325325
}
326326
}
327327

328+
impl AsInner<fs_imp::FilePermissions> for Permissions {
329+
fn as_inner(&self) -> &fs_imp::FilePermissions { &self.0 }
330+
}
331+
328332
impl Iterator for ReadDir {
329333
type Item = io::Result<DirEntry>;
330334

src/libstd/sys/unix/ext.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,13 @@ impl OsStrExt for OsStr {
173173

174174
// Unix-specific extensions to `Permissions`
175175
pub trait PermissionsExt {
176+
fn mode(&self) -> i32;
176177
fn set_mode(&mut self, mode: i32);
177178
}
178179

179180
impl PermissionsExt for Permissions {
181+
fn mode(&self) -> i32 { self.as_inner().mode() }
182+
180183
fn set_mode(&mut self, mode: i32) {
181184
*self = FromInner::from_inner(FromInner::from_inner(mode));
182185
}

src/libstd/sys/unix/fs2.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ impl FilePermissions {
8686
self.mode |= 0o222;
8787
}
8888
}
89+
pub fn mode(&self) -> i32 { self.mode as i32 }
8990
}
9091

9192
impl FromInner<i32> for FilePermissions {

0 commit comments

Comments
 (0)