use std::path::PathBuf;
use anyhow::Result;
#[derive(Debug, Clone)]
pub struct ExecutionRequest {
pub base_directory: PathBuf,
pub goals: Vec<String>,
pub system_properties: std::collections::HashMap<String, String>,
pub show_errors: bool,
pub offline: bool,
}
#[derive(Debug)]
pub struct ExecutionResult {
pub success: bool,
pub errors: Vec<String>,
}
pub trait BuildExecutor: Send + Sync {
fn execute(&self, request: ExecutionRequest) -> Result<ExecutionResult>;
fn build_system(&self) -> crate::build::BuildSystem;
}