903589c
//! analysis Operation trait for the analysis module (language/contribution stats on bare repositories based on gix).
use crate::analysis::types::{CodeActivityStats, ContributorStat, LanguageStats, RefreshResult};
/// Operation trait for the analysis module.
pub trait AnalysisOps {
/// Compute repository language percentages (default branch).
fn analysis_languages(&self) -> Result<LanguageStats, crate::Error>;
/// Count contributors.
fn analysis_contributors(&self) -> Result<Vec<ContributorStat>, crate::Error>;
/// Code activity statistics.
fn analysis_code_activity_stats(
&self,
from: Option<i64>,
branch: Option<&str>,
) -> Result<CodeActivityStats, crate::Error>;
/// Refresh analysis (incremental).
fn analysis_refresh(&self, commit_id: Option<&str>) -> Result<RefreshResult, crate::Error>;
}