use anyhow::Result;
use git_info::types::GitInfo;
use rust_info::types::RustInfo;
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct ProjectInfo {
pub git_info: Option<GitInfo>,
pub rust_info: Option<RustInfo>,
}
impl ProjectInfo {
pub fn new() -> Result<Self> {
let git_info = Some(GitInfo::new());
let rust_info = Some(RustInfo::new());
Ok(Self {
git_info,
rust_info,
})
}
}
#[derive(Debug, Serialize, Deserialize)]
pub struct EnrichedAnalysis {
#[serde(flatten)]
pub original_analysis: crate::utils::project::ProjectAnalysis,
pub project_info: ProjectInfo,
}