mod zippy; mod sendcm; use anyhow::Result; pub enum IntegratedService { ZippyShare, SendCm, } pub fn is_integrated_url(url: &str) -> Option { if zippy::is_zippyshare_url(url) { Some(IntegratedService::ZippyShare) } else if sendcm::is_sendcm_url(url) { Some(IntegratedService::SendCm) } else { None } } pub async fn resolve_integrated_url(url: &str, service: IntegratedService) -> Result { match service { IntegratedService::ZippyShare => zippy::resolve_link(url).await, IntegratedService::SendCm => sendcm::resolve_link(url).await, } }