Skip to main content

rebecca_windows/
lib.rs

1pub mod apps;
2pub mod process;
3pub mod steam;
4pub mod usn_cache;
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7pub enum PrivilegeLevel {
8    StandardUser,
9    Elevated,
10    Unknown,
11}
12
13pub fn current_privilege_level() -> PrivilegeLevel {
14    platform::current_privilege_level()
15}
16
17#[cfg(windows)]
18mod platform {
19    use windows::Win32::UI::Shell::IsUserAnAdmin;
20
21    pub fn current_privilege_level() -> super::PrivilegeLevel {
22        unsafe {
23            if IsUserAnAdmin().as_bool() {
24                super::PrivilegeLevel::Elevated
25            } else {
26                super::PrivilegeLevel::StandardUser
27            }
28        }
29    }
30}
31
32#[cfg(not(windows))]
33mod platform {
34    pub fn current_privilege_level() -> super::PrivilegeLevel {
35        super::PrivilegeLevel::Unknown
36    }
37}