Skip to main content

holodeck_simctl_core/models/
privacy.rs

1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
2pub enum PrivacyAction {
3    Grant,
4    Revoke,
5    Reset,
6}
7
8impl PrivacyAction {
9    pub const ALL: [PrivacyAction; 3] = [PrivacyAction::Grant, PrivacyAction::Revoke, PrivacyAction::Reset];
10
11    pub fn raw_value(self) -> &'static str {
12        match self {
13            PrivacyAction::Grant => "grant",
14            PrivacyAction::Revoke => "revoke",
15            PrivacyAction::Reset => "reset",
16        }
17    }
18}
19
20#[derive(Debug, Clone, Copy, PartialEq, Eq)]
21pub enum PrivacyPermission {
22    All,
23    Calendar,
24    ContactsLimited,
25    Contacts,
26    Location,
27    LocationAlways,
28    PhotosAdd,
29    Photos,
30    MediaLibrary,
31    Microphone,
32    Motion,
33    Reminders,
34    Siri,
35}
36
37impl PrivacyPermission {
38    pub const ALL: [PrivacyPermission; 13] = [
39        PrivacyPermission::All,
40        PrivacyPermission::Calendar,
41        PrivacyPermission::ContactsLimited,
42        PrivacyPermission::Contacts,
43        PrivacyPermission::Location,
44        PrivacyPermission::LocationAlways,
45        PrivacyPermission::PhotosAdd,
46        PrivacyPermission::Photos,
47        PrivacyPermission::MediaLibrary,
48        PrivacyPermission::Microphone,
49        PrivacyPermission::Motion,
50        PrivacyPermission::Reminders,
51        PrivacyPermission::Siri,
52    ];
53
54    pub fn raw_value(self) -> &'static str {
55        match self {
56            PrivacyPermission::All => "all",
57            PrivacyPermission::Calendar => "calendar",
58            PrivacyPermission::ContactsLimited => "contacts-limited",
59            PrivacyPermission::Contacts => "contacts",
60            PrivacyPermission::Location => "location",
61            PrivacyPermission::LocationAlways => "location-always",
62            PrivacyPermission::PhotosAdd => "photos-add",
63            PrivacyPermission::Photos => "photos",
64            PrivacyPermission::MediaLibrary => "media-library",
65            PrivacyPermission::Microphone => "microphone",
66            PrivacyPermission::Motion => "motion",
67            PrivacyPermission::Reminders => "reminders",
68            PrivacyPermission::Siri => "siri",
69        }
70    }
71}