use core::fmt::{self, Debug, Formatter};
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)] pub struct RestrictedFlagsMask(u32);
#[derive(Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)] pub struct RestrictedFlags(u32);
flags!(impl .. for RestrictedFlags(u32) - RestrictedFlagsMask);
impl RestrictedFlags {
pub const unsafe fn from_unchecked(rights: u32) -> Self { Self(rights) }
}
impl Debug for RestrictedFlags {
fn fmt(&self, fmt: &mut Formatter) -> fmt::Result {
use winapi::um::winnt::*;
flags!(self.0, fmt, "0x{:X}", [
DISABLE_MAX_PRIVILEGE,
SANDBOX_INERT,
LUA_TOKEN,
WRITE_RESTRICTED,
])
}
}
pub const DISABLE_MAX_PRIVILEGE : RestrictedFlags = RestrictedFlags(winapi::um::winnt::DISABLE_MAX_PRIVILEGE);
pub const SANDBOX_INERT : RestrictedFlags = RestrictedFlags(winapi::um::winnt::SANDBOX_INERT);
pub const LUA_TOKEN : RestrictedFlags = RestrictedFlags(winapi::um::winnt::LUA_TOKEN);
pub const WRITE_RESTRICTED : RestrictedFlags = RestrictedFlags(winapi::um::winnt::WRITE_RESTRICTED);