crossbow/permission/
status.rs

1#[derive(Clone, Copy, Debug, PartialEq, Eq)]
2pub enum PermissionStatus {
3    // Permission is in an unknown state.
4    Unknown = 0,
5    // Denied by user.
6    Denied = 1,
7    // Feature is disabled on device.
8    Disabled = 2,
9    // Granted by user.
10    Granted = 3,
11    // Restricted (only iOS).
12    Restricted = 4,
13}
14
15impl From<bool> for PermissionStatus {
16    fn from(status: bool) -> Self {
17        match status {
18            true => Self::Granted,
19            false => Self::Denied,
20        }
21    }
22}
23
24#[cfg(all(target_os = "ios", feature = "ios"))]
25use crossbow_ios::permission::AuthorizationStatus;
26
27#[cfg(all(target_os = "ios", feature = "ios"))]
28impl From<AuthorizationStatus> for PermissionStatus {
29    fn from(status: AuthorizationStatus) -> Self {
30        match status {
31            AuthorizationStatus::NotDetermined => Self::Unknown,
32            AuthorizationStatus::Restricted => Self::Restricted,
33            AuthorizationStatus::Denied => Self::Denied,
34            AuthorizationStatus::Authorized => Self::Granted,
35            AuthorizationStatus::Limited => Self::Granted,
36        }
37    }
38}