PermissionsExt in std::os::unix::fs - Rust (original) (raw)
Trait PermissionsExt
1.1.0 · Source
pub trait PermissionsExt {
// Required methods
fn mode(&self) -> u32;
fn set_mode(&mut self, mode: u32);
fn from_mode(mode: u32) -> Self;
}
Available on Unix only.
Expand description
1.1.0 · Source
Returns the underlying raw st_mode
bits that contain the standard Unix permissions for this file.
§Examples
use std::fs::File;
use std::os::unix::fs::PermissionsExt;
fn main() -> std::io::Result<()> {
let f = File::create("foo.txt")?;
let metadata = f.metadata()?;
let permissions = metadata.permissions();
println!("permissions: {:o}", permissions.mode());
Ok(())
}
1.1.0 · Source
Sets the underlying raw bits for this set of permissions.
§Examples
use std::fs::File;
use std::os::unix::fs::PermissionsExt;
fn main() -> std::io::Result<()> {
let f = File::create("foo.txt")?;
let metadata = f.metadata()?;
let mut permissions = metadata.permissions();
permissions.set_mode(0o644); // Read/write for owner and read for others.
assert_eq!(permissions.mode(), 0o644);
Ok(())
}
1.1.0 · Source
Creates a new instance of Permissions
from the given set of Unix permission bits.
§Examples
use std::fs::Permissions;
use std::os::unix::fs::PermissionsExt;
// Read/write for owner and read for others.
let permissions = Permissions::from_mode(0o644);
assert_eq!(permissions.mode(), 0o644);
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.