holodeck-simctl-core 0.9.0

Core simctl automation (simulator lifecycle, recording, screenshots) for the holodeck-simctl CLI/TUI
Documentation
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PrivacyAction {
    Grant,
    Revoke,
    Reset,
}

impl PrivacyAction {
    pub const ALL: [PrivacyAction; 3] = [PrivacyAction::Grant, PrivacyAction::Revoke, PrivacyAction::Reset];

    pub fn raw_value(self) -> &'static str {
        match self {
            PrivacyAction::Grant => "grant",
            PrivacyAction::Revoke => "revoke",
            PrivacyAction::Reset => "reset",
        }
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PrivacyPermission {
    All,
    Calendar,
    ContactsLimited,
    Contacts,
    Location,
    LocationAlways,
    PhotosAdd,
    Photos,
    MediaLibrary,
    Microphone,
    Motion,
    Reminders,
    Siri,
}

impl PrivacyPermission {
    pub const ALL: [PrivacyPermission; 13] = [
        PrivacyPermission::All,
        PrivacyPermission::Calendar,
        PrivacyPermission::ContactsLimited,
        PrivacyPermission::Contacts,
        PrivacyPermission::Location,
        PrivacyPermission::LocationAlways,
        PrivacyPermission::PhotosAdd,
        PrivacyPermission::Photos,
        PrivacyPermission::MediaLibrary,
        PrivacyPermission::Microphone,
        PrivacyPermission::Motion,
        PrivacyPermission::Reminders,
        PrivacyPermission::Siri,
    ];

    pub fn raw_value(self) -> &'static str {
        match self {
            PrivacyPermission::All => "all",
            PrivacyPermission::Calendar => "calendar",
            PrivacyPermission::ContactsLimited => "contacts-limited",
            PrivacyPermission::Contacts => "contacts",
            PrivacyPermission::Location => "location",
            PrivacyPermission::LocationAlways => "location-always",
            PrivacyPermission::PhotosAdd => "photos-add",
            PrivacyPermission::Photos => "photos",
            PrivacyPermission::MediaLibrary => "media-library",
            PrivacyPermission::Microphone => "microphone",
            PrivacyPermission::Motion => "motion",
            PrivacyPermission::Reminders => "reminders",
            PrivacyPermission::Siri => "siri",
        }
    }
}