is_admin/
lib.rs

1#[cfg(windows)]
2#[link(name = "shell32")]
3unsafe extern "system" {
4    fn IsUserAnAdmin() -> bool;
5}
6
7#[cfg(windows)]
8pub fn is_admin() -> bool {
9    unsafe { IsUserAnAdmin() }
10}
11
12#[cfg(unix)]
13pub fn is_admin() -> bool {
14    use libc::{geteuid, getuid};
15    unsafe { getuid() == 0 || geteuid() == 0 }
16}