use std::collections::HashSet;
#[derive(Debug, Clone, Copy, Hash, Eq, PartialEq)]
pub enum PlatformCapability {
IconExtraction,
ShellOpen,
RunAsAdmin,
AppEnumeration,
AppLaunch,
WindowActivation,
AutoStart,
HotkeyListening,
InstallationMonitoring,
}
#[derive(Clone)]
pub struct PlatformCapabilities {
capabilities: HashSet<PlatformCapability>,
}
impl PlatformCapabilities {
pub fn new(capabilities: HashSet<PlatformCapability>) -> Self {
Self { capabilities }
}
pub fn has(&self, capability: PlatformCapability) -> bool {
self.capabilities.contains(&capability)
}
pub fn all(&self) -> &HashSet<PlatformCapability> {
&self.capabilities
}
}