windows_erg/security/
rights.rs1use super::AccessMask;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7pub enum FileAccess {
8 Read,
10 Write,
12 Execute,
14 FullControl,
16 Custom(AccessMask),
18}
19
20impl FileAccess {
21 pub fn to_mask(self) -> AccessMask {
23 match self {
24 FileAccess::Read => AccessMask::from_bits(0x120089),
25 FileAccess::Write => AccessMask::from_bits(0x120116),
26 FileAccess::Execute => AccessMask::from_bits(0x1200A0),
27 FileAccess::FullControl => AccessMask::from_bits(0x1F01FF),
28 FileAccess::Custom(mask) => mask,
29 }
30 }
31}
32
33#[derive(Debug, Clone, Copy, PartialEq, Eq)]
35pub enum RegistryAccess {
36 Read,
38 Write,
40 ReadWrite,
42 FullControl,
44 Custom(AccessMask),
46}
47
48impl RegistryAccess {
49 pub fn to_mask(self) -> AccessMask {
51 match self {
52 RegistryAccess::Read => AccessMask::from_bits(0x20019),
53 RegistryAccess::Write => AccessMask::from_bits(0x20006),
54 RegistryAccess::ReadWrite => AccessMask::from_bits(0x2001F),
55 RegistryAccess::FullControl => AccessMask::from_bits(0xF003F),
56 RegistryAccess::Custom(mask) => mask,
57 }
58 }
59}