upstream-rs 1.8.0

Fetch package updates directly from the source.
Documentation
use std::path::{Path, PathBuf};

use anyhow::Result;

use crate::services::builder::BuildProfile;

pub mod dotnet;
pub mod rust;

pub fn handlers() -> [Box<dyn BuildProfileHandler>; 2] {
    [Box::new(rust::RustProfile), Box::new(dotnet::DotnetProfile)]
}

pub trait BuildProfileHandler {
    fn profile(&self) -> BuildProfile;
    fn detect(&self, workspace: &Path) -> bool;
    fn run_build(
        &self,
        workspace: &Path,
        package_name: &str,
        output_override: Option<&Path>,
    ) -> Result<PathBuf>;
}