use super::AccessMask;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum FileAccess {
Read,
Write,
Execute,
FullControl,
Custom(AccessMask),
}
impl FileAccess {
pub fn to_mask(self) -> AccessMask {
match self {
FileAccess::Read => AccessMask::from_bits(0x120089),
FileAccess::Write => AccessMask::from_bits(0x120116),
FileAccess::Execute => AccessMask::from_bits(0x1200A0),
FileAccess::FullControl => AccessMask::from_bits(0x1F01FF),
FileAccess::Custom(mask) => mask,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RegistryAccess {
Read,
Write,
ReadWrite,
FullControl,
Custom(AccessMask),
}
impl RegistryAccess {
pub fn to_mask(self) -> AccessMask {
match self {
RegistryAccess::Read => AccessMask::from_bits(0x20019),
RegistryAccess::Write => AccessMask::from_bits(0x20006),
RegistryAccess::ReadWrite => AccessMask::from_bits(0x2001F),
RegistryAccess::FullControl => AccessMask::from_bits(0xF003F),
RegistryAccess::Custom(mask) => mask,
}
}
}