Kget 1.7.0

A powerful and versatile download manager and library
Documentation
use std::error::Error;
use std::process::Command;

pub fn open_magnet_in_default_client(magnet: &str) -> Result<(), Box<dyn Error + Send + Sync>> {
    #[cfg(windows)]
    {
        Command::new("cmd")
            .args(["/C", "start", "", magnet])
            .spawn()?;
        return Ok(());
    }

    #[cfg(target_os = "macos")]
    {
        Command::new("open").arg(magnet).spawn()?;
        return Ok(());
    }

    #[cfg(all(unix, not(target_os = "macos")))]
    {
        Command::new("xdg-open").arg(magnet).spawn()?;
        return Ok(());
    }

    #[allow(unreachable_code)]
    Err("Unsupported platform for opening magnet links".into())
}