use crate::message::Message; use anyhow::Result; use tokio::sync::mpsc; #[cfg(target_family = "unix")] mod browse_unix; #[cfg(target_family = "unix")] use browse_unix::{browse_url_impl, handle_browser_open_impl}; #[inline] pub async fn browse_url(url: &String) { if let Err(e) = browse_url_impl(url).await { eprintln!("{}", e); std::process::exit(1); } } #[cfg(not(target_family = "unix"))] pub async fn browse_url_impl(_url: &String) -> Result<()> { use anyhow::anyhow; Err(anyhow!( "Opening a browser is not supported on this platform" )) } #[inline] pub async fn handle_browser_open( messages: mpsc::Sender, ) -> Result<()> { handle_browser_open_impl(messages).await } #[cfg(not(target_family = "unix"))] async fn handle_browser_open_impl( _messages: mpsc::Sender, ) -> Result<()> { std::future::pending().await }