tokmd-analysis 1.11.1

Analysis logic and enrichers for tokmd receipts.
Documentation
use std::path::Path;

use tokmd_analysis_types::{DerivedReport, EffortEstimateReport};
use tokmd_types::ExportData;

use crate::effort::{EffortRequest, build_effort_report};

use super::super::outputs::AnalysisOutputs;

pub(in crate::analysis) fn run(
    root: &Path,
    export: &ExportData,
    derived: &DerivedReport,
    outputs: &AnalysisOutputs,
    request: Option<&EffortRequest>,
    warnings: &mut Vec<String>,
) -> Option<EffortEstimateReport> {
    let effort_request = request?;
    match build_effort_report(
        root,
        export,
        derived,
        outputs.git.as_ref(),
        outputs.complexity.as_ref(),
        outputs.api_surface.as_ref(),
        outputs.dup.as_ref(),
        effort_request,
    ) {
        Ok(report) => Some(report),
        Err(err) => {
            warnings.push(format!("effort estimate failed: {}", err));
            None
        }
    }
}