use bitflags::bitflags;
bitflags! {
pub struct FilePermissions: u32 {
const READ = 0b00000001;
const WRITE = 0b00000010;
const EXECUTE = 0b00000100;
}
}
fn main() {
let mut perm = FilePermissions::READ | FilePermissions::WRITE;
// 檢查是否包含某個標記
if perm.contains(FilePermissions::READ) {
println!("Read permission is set.");
}
// 添加一個標記
perm.insert(FilePermissions::EXECUTE);
if perm.contains(FilePermissions::EXECUTE) {
println!("Execute permission is set.");
}
// 移除一個標記
perm.remove(FilePermissions::WRITE);
if !perm.contains(FilePermissions::WRITE) {
println!("Write permission is not set.");
}
// 打印當前所有標記
println!("Current permissions: {:?}", perm);
}