3 releases
0.1.2 | Feb 24, 2021 |
---|---|
0.1.1 | Feb 24, 2021 |
0.1.0 | Feb 24, 2021 |
#10 in #target-file
5,615 downloads per month
Used in 12 crates
(9 directly)
68KB
1.5K
SLoC
Decode Unix file mode bits, change them and apply them to files.
All file type, special and protection bits described in sys/stat.h
are represented.
The Mode
object can represent a file mode partially by the use of a bitmask. Only modified bits will be changed in the target file.
Modifications specific only to directories (search) are handled correctly.
use std::path::Path;
use file_mode::{ModePath, User};
let mode = Path::new("LICENSE").mode().unwrap();
// query bits
assert!(mode.file_type().unwrap().is_regular_file());
assert!(mode.user_protection(User::Owner).is_read_set());
assert!(mode.user_protection(User::Group).is_write_set());
assert!(!mode.user_protection(User::Other).is_execute_set());
// print as string
println!("{}", mode); // -rw-rw-r--
assert_eq!(&mode.to_string(), "-rw-rw-r--");
// apply chmod string
Path::new("LICENSE").set_mode("u+r,g+u").unwrap();
See module level documentation on docs.rs for more examples.
Dependencies
~175KB