#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EDepotFileFlag {
    UserConfig = 1,
    VersionedUserConfig = 2,
    Encrypted = 4,
    ReadOnly = 8,
    Hidden = 16,
    Executable = 32,
    Directory = 64,
    CustomExecutable = 128,
    InstallScript = 256,
    Symlink = 512,
}

impl EDepotFileFlag {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::UserConfig as i32 => Some(Self::UserConfig),
            x if x == Self::VersionedUserConfig as i32 => Some(Self::VersionedUserConfig),
            x if x == Self::Encrypted as i32 => Some(Self::Encrypted),
            x if x == Self::ReadOnly as i32 => Some(Self::ReadOnly),
            x if x == Self::Hidden as i32 => Some(Self::Hidden),
            x if x == Self::Executable as i32 => Some(Self::Executable),
            x if x == Self::Directory as i32 => Some(Self::Directory),
            x if x == Self::CustomExecutable as i32 => Some(Self::CustomExecutable),
            x if x == Self::InstallScript as i32 => Some(Self::InstallScript),
            x if x == Self::Symlink as i32 => Some(Self::Symlink),
            _ => None,
        }
    }
}
