pub const CAP_HTTP: u32 = 1;
pub const CAP_STORAGE: u32 = 2;
pub const CAP_LOCATION: u32 = 3;
pub const CAP_NOTIFICATIONS: u32 = 4;
pub const CAP_CREDENTIAL: u32 = 5;
pub const HTTP_GET: u32 = 1;
pub const HTTP_POST: u32 = 2;
pub const HTTP_PUT: u32 = 3;
pub const HTTP_PATCH: u32 = 4;
pub const HTTP_DELETE: u32 = 5;
pub const STORAGE_GET: u32 = 1;
pub const STORAGE_SET: u32 = 2;
pub const STORAGE_DELETE: u32 = 3;
pub const STORAGE_KEYS: u32 = 4;
pub const LOCATION_CURRENT: u32 = 1;
pub const NOTIFICATIONS_SEND: u32 = 1;
pub const CREDENTIAL_GET: u32 = 1;
pub fn resolve_ids(module: &str, function: &str) -> Option<(u32, u32)> {
match (module, function) {
("http", "get") => Some((CAP_HTTP, HTTP_GET)),
("http", "post") => Some((CAP_HTTP, HTTP_POST)),
("http", "put") => Some((CAP_HTTP, HTTP_PUT)),
("http", "patch") => Some((CAP_HTTP, HTTP_PATCH)),
("http", "delete") => Some((CAP_HTTP, HTTP_DELETE)),
("storage", "get") => Some((CAP_STORAGE, STORAGE_GET)),
("storage", "set") => Some((CAP_STORAGE, STORAGE_SET)),
("storage", "delete") => Some((CAP_STORAGE, STORAGE_DELETE)),
("storage", "keys") => Some((CAP_STORAGE, STORAGE_KEYS)),
("location", "current") => Some((CAP_LOCATION, LOCATION_CURRENT)),
("notifications", "send") => Some((CAP_NOTIFICATIONS, NOTIFICATIONS_SEND)),
_ => None,
}
}
pub fn is_capability_module(module: &str) -> bool {
matches!(module, "http" | "storage" | "location" | "notifications")
}
pub fn capability_module_names() -> &'static [&'static str] {
&["http", "storage", "location", "notifications"]
}