1
Fork 0

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
This commit is contained in:
Alex Crichton 2015-02-23 15:26:18 -08:00
parent 91a5a1ab4a
commit 537d6946e4
3 changed files with 8 additions and 0 deletions

View file

@ -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 { impl Iterator for ReadDir {
type Item = io::Result<DirEntry>; type Item = io::Result<DirEntry>;

View file

@ -173,10 +173,13 @@ impl OsStrExt for OsStr {
// Unix-specific extensions to `Permissions` // Unix-specific extensions to `Permissions`
pub trait PermissionsExt { pub trait PermissionsExt {
fn mode(&self) -> i32;
fn set_mode(&mut self, mode: i32); fn set_mode(&mut self, mode: i32);
} }
impl PermissionsExt for Permissions { impl PermissionsExt for Permissions {
fn mode(&self) -> i32 { self.as_inner().mode() }
fn set_mode(&mut self, mode: i32) { fn set_mode(&mut self, mode: i32) {
*self = FromInner::from_inner(FromInner::from_inner(mode)); *self = FromInner::from_inner(FromInner::from_inner(mode));
} }

View file

@ -86,6 +86,7 @@ impl FilePermissions {
self.mode |= 0o222; self.mode |= 0o222;
} }
} }
pub fn mode(&self) -> i32 { self.mode as i32 }
} }
impl FromInner<i32> for FilePermissions { impl FromInner<i32> for FilePermissions {