pub mod catalog;
pub use catalog::{
CONSULTA_SERVICOS, CONSULTA_TIPOS, EVOLUTION_PATHS, SERVICE_ACTIONS, SOURCE, WHATSAPP_ACTIONS,
WHATSMEOW_ACTIONS,
};
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct ConsultaTipoMeta {
pub service: &'static str,
pub fields: &'static [&'static str],
}
pub fn consulta_tipo(tipo: &str) -> Option<&'static ConsultaTipoMeta> {
let index = CONSULTA_TIPOS
.binary_search_by(|(candidate, _)| (*candidate).cmp(tipo))
.ok()?;
Some(&CONSULTA_TIPOS[index].1)
}
pub fn service_actions_for(service: &str) -> &'static [&'static str] {
match SERVICE_ACTIONS.binary_search_by(|(candidate, _)| (*candidate).cmp(service)) {
Ok(index) => SERVICE_ACTIONS[index].1,
Err(_) => &[],
}
}
pub fn has_action(service: &str, action: &str) -> bool {
service_actions_for(service).contains(&action)
}
pub fn services() -> impl Iterator<Item = &'static str> {
SERVICE_ACTIONS.iter().map(|(service, _)| *service)
}